gpt4 book ai didi

java - 当为任何参数定义模拟构造函数时,PowerMockito 返回 null

转载 作者:太空宇宙 更新时间:2023-11-04 12:43:17 29 4
gpt4 key购买 nike

我一直在试图弄清楚 PowerMockito 的构造函数模拟是怎么回事。我的代码类似于以下内容:

public void testConstruction() {
whenNew(Account.class).withAnyArguments().thenReturn(mock(Account.class));
assertNotNull(new Account("name")); //fails
}

我不太确定还能在哪里寻找导致此问题的原因。使用上面的 stub 代码,当我调用不带参数的构造函数时,PowerMockito 将仅返回由 mock(Account.class) 创建的对象;它的行为就好像我使用 withNoArguments() 对其进行了 stub 操作。我确信我的测试类设置正确,因为以下代码通过了:

public void testConstruction() {
whenNew(Account.class).withArguments("name").thenReturn(mock(Account.class));
assertNotNull(new Account("name")); //passes
}

最佳答案

我遇到了类似的问题。如果被模拟的类具有多个构造函数,则 withAnyArguments 不会按预期运行。在我的例子中,用whenNew模拟的类有2个构造函数,当创建这个类的新实例时,我总是会得到null。 https://github.com/powermock/powermock/issues/891给出了一些提示,我转而使用 withArguments。

关于java - 当为任何参数定义模拟构造函数时,PowerMockito 返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36604714/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com