Power Mockito 无法模拟构造函数



为了测试一些遗留代码,我必须使用Power Mockito。原因是旧代码没有使用依赖注入,由于某些原因,我们目前无法重构代码。我们正在系统中使用 ANT 进行测试。我已经配置了build.xml以使用功率模拟和功率模拟测试库。我想使用 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);
     }
}

这个测试失败了,我不知道这里出了什么问题。我也看到了下面的链接,用于使用电源模拟配置测试。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构造函数模拟工作了。

相关内容

  • 没有找到相关文章

最新更新