[英]Spring unit tests [webflux, cloud]
我是单元测试主题的新手,我的问题是我是否应该对方法的每一行代码执行测试,或者我可以通过哪些方式执行这些测试以获得良好的覆盖率,如果也是,是否应该例外评估与否?
例如,如果我有这个服务方法,它也使用一些与其他微服务通信的助手,有人可以给我如何执行的例子,非常感谢。
public Mono<BankAccountDto> save(BankAccountDto bankAccount) {
var count = findAccountsByCustomerId(bankAccount.getCustomerId()).count();
var customerDto = webClientCustomer
.findCustomerById(bankAccount.getCustomerId());
var accountType = bankAccount.getAccountType();
return customerDto
.zipWith(count)
.flatMap(tuple -> {
final CustomerDto custDto = tuple.getT1();
final long sizeAccounts = tuple.getT2();
final var customerType = custDto.getCustomerType();
if (webClientCustomer.isCustomerAuthorized(customerType, accountType, sizeAccounts)) {
return saveBankAccountAndRole(bankAccount);
}
return Mono.error(new Exception("....."));
});
}
鉴于您想对该代码进行单元测试,您需要模拟诸如webClientCustomer
之类的依赖项。
然后,您应该始终测试代码中的相关路径。 查看您的代码,我只看到三个要测试的相关代码:
webClientCustomer.findCustomerById(bankAccount.getCustomerId());
该方法返回一个空的Mono
; 返回一个空的Mono
;saveBankAccountAndRole(bankAccount)
并且您的save()
方法实际上返回saveBankAccountAndRole(bankAccount)
返回的任何内容。 如果webClientCustomer.isCustomerAuthorized(customerType, accountType, sizeAccounts)
为true
,就会发生这种情况;webClientCustomer.isCustomerAuthorized(customerType, accountType, sizeAccounts)
为false
,则该方法返回异常。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.