我一直试图弄清楚与PowerMockito的构造函数嘲笑有什么关系。我的代码类似于以下内容:
public void testConstruction() {
whenNew(Account.class).withAnyArguments().thenReturn(mock(Account.class));
assertNotNull(new Account("name")); //fails
}
我不确定在哪里可以找到导致此问题的原因。使用上面的存根代码,当我使用无参数调用构造函数时,PowerMockito将仅返回mock(Account.class)
创建的对象;它表现得好像我用withNoArguments()
对其进行了抄袭。我确定我的测试类设置正确,因为以下代码通过了:
public void testConstruction() {
whenNew(Account.class).withArguments("name").thenReturn(mock(Account.class));
assertNotNull(new Account("name")); //passes
}
答案 0 :(得分:0)
我遇到了类似的问题。如果要模拟的类具有多个构造函数,则withAnyArguments的行为不符合预期。在我的情况下,用whenNew模拟的类有2个构造函数,而在创建此类的新实例时,我总是会得到null。 https://github.com/powermock/powermock/issues/891给出了一些提示,我转而使用withArguments。