我有一个类和一个方法,看起来像这样
class A {
private RetryLogic logic;
private Service serviceClient;
public A(){
logic = new RetryLogic();
serviceClient = new Service();
}
public Response methodA() {
Request request = new Request();
serviceClient.addRetryLogic(logic);
Responce response = serviceClient.call(request);
return response;
}
}
在这种情况下,如果出现服务不可用或任何 HTTP 错误等故障,重试逻辑将重试服务调用。
但是,如果服务被调用并引发任何建模异常,它不会重试。
如果我正在为 methodA 编写单元测试,是否适合(或者我应该关注)通过添加一个模拟 HTTP 异常并检查重试是否有效的测试来测试重试逻辑?
RetryLogic基本上是一个不属于我的不同包。
测试Apache Commons HttpClient
的setConnectionTimeout
吗?还是你JDBC Client
的setAutoCommit
?我不会。
如果您信任该Service
就像信任其余依赖项一样,那么测试它是没有意义的。试想一下,有 1000 名开发人员使用 Service
,并且他们都在测试重试功能......这有点浪费时间,不是吗?