我需要存根Java.util.concurrent.Executors类newFixedThreadPool方法并验证它。
Executors.newFixedThreadPool(executorServiceThreadCount, threadFactory)
我尝试创建一个全局Executors值来覆盖测试片段。
lazy val executors = Executors
但是无法从执行程序实例访问newFixedThreadPool方法。 我应该怎么做才能破坏这种方法。对此最好的做法是什么?感谢
答案 0 :(得分:0)
您可以使用PowerMockito来模拟静态方法。在测试类之上使用以下注释:
@RunWith(PowerMockRunner.class)
@PrepareForTest({Executors.class, ClassYouAreTesting.class})
并使用以下代码模拟newFixedThreadPool方法:
PowerMockito.mockStatic(Executors.class);
Mockito.when(Executors.newFixedThreadPool(5)).thenReturn(mockService);
答案 1 :(得分:0)
newFixedThreadPool方法可能已经过测试,因此我不会花太多时间来测试它。
相反,我会假设您实际尝试做的是测试使用newFixedThreadPool返回类型(ExecutorService)的类。 如果是这种情况,那么您有几个选择:
我应该补充一些事项:
我希望这会有所帮助:)