如何使用 PowerMockito 用 varargs 模拟构造函数



我有一个豆子:

class Bean {
    public Bean(String name, Integer number, Resource... resources ) {
        // ...
    }
}

我想嘲笑豆子的构造函数。这是我的测试:

@Test
public void shouldReturnMockedBean() throws Exception {
        PowerMockito.whenNew(Bean.class)
                .withArguments(
                        Mockito.anyString(),
                        Mockito.anyInt(),
                        Mockito.<Resource>anyVararg()
                ).thenReturn(beanMock);
        Bean bean = new Bean("abc", 1);
        Assert.assertNotNull(bean);
}

我还在测试类中使用PowerMockito注释:

@RunWith(PowerMockRunner.class)
@PrepareForTest({Bean.class})

但是我null得到一个错误,而不是我的模拟。我在这里做错了什么?

varargs 被设置为 null,而不是创建一个第一个元素为 null 的 varargs。

要修复它,请执行以下操作Bean bean = new Bean("abc", 1, (Resource)null);

看到这里

但是,如果您打算不提供任何资源,则只需省略第三个参数。

相关内容

  • 没有找到相关文章

最新更新