Power Mockito 无法模拟构造函数
Power Mockito fails to mock constructor
为了测试一些遗留代码,我不得不使用 Power Mockito。原因是遗留代码没有使用依赖注入,由于某些原因,我们此时无法重构代码。我们正在 运行 测试我们系统中的 ANT。我已将 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);
}
}
这个测试失败了,我不知道这里出了什么问题。我还看到下面 link 使用 power mockito 配置 testng。 https://github.com/jayway/powermock/wiki/TestNG_usage
我尝试将我的测试 class 扩展到 PowerMockTestCase,它在 运行 测试时给了我以下错误。
[testng] [TestNG] [ERROR]
**[testng] Error creating object factory**
[testng] The tests failed.
我有以下疑问:-
1) 要么我的 testng 没有正确配置以使用 Power Mockito,但 power mockito 简单测试用例有效。
2) 缺少某些配置。
我最近才弄清楚这个问题,这是因为一些依赖库 i.e.javassist 很旧。用较新的 3.20 版本替换它解决了问题并且 PowerMockito 构造函数模拟工作。
为了测试一些遗留代码,我不得不使用 Power Mockito。原因是遗留代码没有使用依赖注入,由于某些原因,我们此时无法重构代码。我们正在 运行 测试我们系统中的 ANT。我已将 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);
}
}
这个测试失败了,我不知道这里出了什么问题。我还看到下面 link 使用 power mockito 配置 testng。 https://github.com/jayway/powermock/wiki/TestNG_usage
我尝试将我的测试 class 扩展到 PowerMockTestCase,它在 运行 测试时给了我以下错误。
[testng] [TestNG] [ERROR]
**[testng] Error creating object factory**
[testng] The tests failed.
我有以下疑问:-
1) 要么我的 testng 没有正确配置以使用 Power Mockito,但 power mockito 简单测试用例有效。
2) 缺少某些配置。
我最近才弄清楚这个问题,这是因为一些依赖库 i.e.javassist 很旧。用较新的 3.20 版本替换它解决了问题并且 PowerMockito 构造函数模拟工作。