我在某些单元测试中使用了PowerMockito,但遇到了问题。我正在尝试测试创建一系列线程并运行它们的方法。在每个线程中,都会创建一个我需要期望的对象,而不是返回我自己的模拟对象(它发出http请求等)。我在使用之前已经完成了此操作PowerMockito.whenNew(...),并且工作正常,但是这似乎不起作用-PowerMockito是否在线程内不起作用?我还没有找到其他类似问题或有关情况的文档。
一些示例代码可帮助您可视化:
for(Object object : objectList) {
Thread t = new Thread(new Runnable() {
public void run() {
SomeObject objectImTryingToStub = new SomeObject();
}
});
}
Run Code Online (Sandbox Code Playgroud)
我用来尝试捕获对象创建的代码:
SomeObject mockSomeObject = mock(SomeObject.class);
PowerMockito.whenNew(SomeObject.class).withNoArguments().thenReturn(mockSomeObject);
Run Code Online (Sandbox Code Playgroud)
相同的代码对于相同类中的其他测试也可以正常工作,这些测试以相同的方式成功捕获了相同类型的对象的创建。
任何帮助表示赞赏!谢谢