Har*_*ini 3 java mockito powermockito
我有一个名为 doParallelThings 的方法:
public Dummy doParallelThings(Map<String, String> mapp) throws Exception {
Dummy dummy = new Dummy();
CompletableFuture<Ans1> one = firstService.getOne(mapp.get("some1"), mapp);
CompletableFuture<Ans2> two = secondService.getTwo(headersMap.get("some2"), mapp);
CompletableFuture<Void> combinedFuture = CompletableFuture.allOf(one, two);
try {
combinedFuture.get();
dummy.setOne(one.get());
dummy.setTwp(two.get());
} catch (Throwable e) {
}
return dummy;
}
Run Code Online (Sandbox Code Playgroud)
代码工作正常,但当我尝试测试它时,
combinedFuture.get();进入无限循环。
单元测试如下:
@Mock
private CompletableFuture<Void> ans;
@Test
public void testDoParallelThings() throws Exception {
PowerMockito.mockStatic(CompletableFuture.class);
PowerMockito.when(CompletableFuture.allOf(any())).thenReturn(ans);
when(ans.get()).thenReturn(null);
Dummy dummy = dummyService. doParallelThings(mockMap);
assertNotNull(dummy);
}
Run Code Online (Sandbox Code Playgroud)
我还在@RunWith(PowerMockRunner.class)
@PrepareForTest({CompletableFuture.class})测试类上面添加了。
我缺少什么?
when(firstService.getOne(any(), any())).thenReturn(CompletableFuture.completedFuture(mockOne));
解决了我的问题
| 归档时间: |
|
| 查看次数: |
4245 次 |
| 最近记录: |