gpt4 book ai didi

java - Power Mockito 无法模拟构造函数

转载 作者:行者123 更新时间:2023-11-30 07:36:59 27 4
gpt4 key购买 nike

为了测试一些遗留代码,我必须使用 Power Mockito。原因是遗留代码没有使用依赖注入(inject),并且由于某些原因,我们此时无法重构代码。我们正在系统中使用 ANT 运行 testng。我已将 build.xml 配置为使用 power mock 和 power mock testng 库。我想使用 Power Mockito 模拟构造函数,下面是示例代码。

public class Something {
private String arg = null;

public Something() {

}

public Something(String _arg) {
arg = _arg;
}

public String doSomething() {
return arg;
}
}

public class Helper {
public Something doSomething(String arg) {
return new Something();
}
}

@PrepareEverythingForTest
class TestSC {
@Test
public void testHelper() throws Exception {
Something mockSomething = PowerMockito.mock(Something.class);
PowerMockito.whenNew(Something.class).withNoArguments().thenReturn(mockSomething);

Helper helper = new Helper();
Something test = helper.doSomething("arg");
Assert.assertEquals(test, mockSomething);
}
}

这个测试失败了,我不知道这里出了什么问题。我还看到了下面的链接,使用 powermockito 配置 testng。 https://github.com/jayway/powermock/wiki/TestNG_usage

我尝试将我的测试类扩展到 PowerMockTestCase,它在运行测试时给出了以下错误。

   [testng] [TestNG] [ERROR]
**[testng] Error creating object factory**
[testng] The tests failed.

我有以下疑问:-

1)我的 testng 未正确配置为使用 Power Mockito,但 power mockito 简单测试用例可以工作。

2) 缺少某些配置。

最佳答案

我最近发现了这个问题,这是因为一些依赖库,即javassist,它已经很旧了。将其替换为较新的版本 3.20 解决了该问题,并且 PowerMockito 构造函数模拟工作正常。

关于java - Power Mockito 无法模拟构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35248839/

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