我有一个名为asynEvaluaEstadoSiniestro
的服务,它返回true或false,还有一些在我的测试中被模拟的存储库。
@Service
@Slf4j
public class AsynEvaluaEstadoSiniestroImpl implements AsynEvaluaEstadoSiniestro {
@Async("myExecutor")
public CompletableFuture<Boolean> getEvaluacionEstadoSiniestro(DocumentRequest request) throws BusinessException {
//do some persistances operations in repositories and return fooResult as true or false;|
return CompletableFuture.completedFuture(fooResult);
}
}
@InjectMocks
AsynEvaluaEstadoSiniestroImpl asynEvaluaEstadoSiniestro;
@Test
@DisplayName("Async process (1)")
void insertarSolicitudTest() throws BusinessException {
//some when repositories functions needed for testing
CompletableFuture<Boolean> cf = asynEvaluaEstadoSiniestro.getEvaluacionEstadoSiniestro(documentRequest());
cf.isDone();
}
当我执行sonaqube coverity时,它说:
在此测试用例中至少添加一个Assert。
我如何在这个测试中添加Assert???
我希望在这个测试中增加一个Assert。
1条答案
按热度按时间ogq8wdun1#
每一个像样的测试用例都有这些步骤:
1.[Given] -创建输入(例如DocumentRequest示例)
1.[何时] -进行一些修改(例如,服务呼叫)
1.[Then] -检查所获得结果的正确性(Assert)
异步方法的单元测试并不像看起来那么难。幸运的是,有很多好的库可以帮助。其中一个流行的库是Awaitility
如果使用Maven作为构建工具,只需将此依赖项添加到
pom.xml
为了演示,我做了一个示例服务:
negate
方法返回CompletableFuture<Boolean>
,等待5秒后完成。这只是为了演示。这个服务的测试是这样的。