Var*_*run 5 junit mocking mockito powermock
我正在尝试测试一个在构造函数中创建新对象的类.我和Mockito一起使用PowerMock.
public ClassNeedToTest() throws Exception {
String targetCategory = "somevalue";
String targetService = "somevalue";
invoker = new ServiceInvoker(targetCategory, targetService); // throws Exception
}
Run Code Online (Sandbox Code Playgroud)
对于上面给出的代码,我试图创建一个实例ClassNeedToTest来测试该类的不同方法.我无法创建对象,因为ServiceInvoker创建抛出异常.该ServiceInvoker课程是第三方课程.有没有办法模拟ServiceInvoker,以便当测试类试图创建时,ClassNeedToTest我可以获得模拟对象,ServiceInvoker而不是真正调用构造函数ServiceInvoker.
在我的测试类中,我只是创建了一个ClassNeedToTest的新实例:
ClassNeedToTest obj = new ClassNeedToTest();
Run Code Online (Sandbox Code Playgroud)
我找到了同样的答案。如果正确遵循下面给出的步骤,您可以模拟对象。
步骤 1. - 添加注释以准备测试类。
@PrepareForTest({ ServiceInvoker.class, ClassNeedToTest.class})
Run Code Online (Sandbox Code Playgroud)
步骤 2. - 模拟课堂。
serviceInvokerMck = Mockito.mock(ServiceInvoker.class);
Run Code Online (Sandbox Code Playgroud)
步骤 3. 在调用 new 运算符时使用以下方法来模拟对象
PowerMockito.whenNew(ServiceInvoker.class).withAnyArguments().thenReturn(serviceInvokerMck);
Run Code Online (Sandbox Code Playgroud)
ClassNeedToTest我没有做的是在注释中添加类,PrepareForTest认为唯一需要模拟的类应该添加到那里。
| 归档时间: |
|
| 查看次数: |
4912 次 |
| 最近记录: |