【发布时间】:2020-12-24 23:50:00
【问题描述】:
您好,我正在尝试使用异步方法进行一些单元测试。下面是我的代码。我嘲笑 doWork 的第一行 methodUnderTest() 在执行期间返回 null 并且测试失败。我尝试了与异步相关的不同方法,但没有任何效果。我在这里错过了什么。
public class AServiceImpl{
@Autowired
BService bService;
@Async
public CompletableFuture<String> methodUnderTest(String input){
String s = bService.doWork(input.substring(3));
//blah blah blah
return CompletableFuture.completedFuture(s);
}
}
public class AServiceTest{
private BService bService;
private AService aService;
@Before
void beforeTest(){
aService = new AServiceImpl();
bService = mock(BService.class);
//blah blah blah
}
@Test
public void someUnitTest(){
Mockito.when(bService.doWork(any())).thenReturn("ABC");
String s = aService.methodUnderTest("ABCDEF").get();
Assert.assertNotNull(s);
}
}
【问题讨论】: