具有构造函数args Object的模拟构造函数..对象



我想在单元测试中模拟一个遗留对象。这里是构造函数:

public Class LegacyClass{
    public LegacyClass(Object... obj) {
        super(obj);
    }
}

我试着用powerMock来模拟它,就像这样:

whenNew(LegacyClass.class).withParameterTypes(Object.class).
withArguments(anyString(), anyString()).thenAnswer(new Answer<Object>(){
...//Answer impl code
});

问题来了:

  1. 我应该用ParameterTypes()放入哪个类
  2. 我可以把它放在@Beforesetup()中吗

使用Object[].class访问varargs参数的参数类型:

PowerMockito.whenNew(LegacyClass.class)
            .withParameterTypes(Object[].class)
            .withArguments(Mockito.anyString(), Mockito.anyString())
            .thenAnswer(new Answer<Object>() {
                public Object answer(InvocationOnMock invocation)
                        throws Throwable {
                    // your code
                }
            });

我进行了测试,这也适用于@Before方法。

相关内容

  • 没有找到相关文章

最新更新