![](/img/trans.png)
[英]Java & Mockito - passing an argument to a method AND capturing the result
[英]Java - Mockito - CompletableFutures - Unexpected Result of Tested Method
我有一个非常奇怪的极端情况,未来每运行几千次就没有按预期完成一次。 我能够始终如一地触发故障的唯一方法是重复运行测试,直到它失败。
说测试:
public class TestFunctionality(){
@Mock private MockIntegrationA mockIntegrationA;
@InjectMocks private MyHandler unitUnderTest;
@BeforeEach
public void init(){
MockitoAnnotations.openMocks(this);
}
@Test
public void testManagerFailThenSucceed(){
when(mockIntegrationA.callRestMethod(any())
.thenThrow(new RuntimeException(""))
.thenReturn(CompletableFuture.completedFuture(null));
CompletableFuture<Void> result = unitUnderTest.invokeMethod();
assertTrue(result.isCompletedExceptionally());
result = unitUnderTest.callFunction();
assertFalse(result.isCompletedExceptionally());
}
}
上面测试中的第一个断言是当测试出错时触发的断言。 是否有没有正确清洁的东西,或者是什么导致了这种边缘情况,即第一个结果没有异常完成?
我不能将评论作为答案,但@tgdavies 关于 runAsync 的评论是正确的。 我将其更改为 CompletedFuture,现在我无法触发此行为。 非常感谢您的帮助! 花了几个小时试图解决它
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.