junit 通过多次尝试模拟或模拟HttpResponse

hs1rzwqc  于 4个月前  发布在  其他
关注(0)|答案(1)|浏览(38)

我想对一个可能返回HTTP状态代码(SERVICE_UNAVAILABLE)的服务进行JUnit测试。对我来说,这可能是不可用的,因为容器正在扩展并且还无法访问。在这种情况下,我让代码重试服务最多3次。
我可以模拟一个HttpResponse来进行测试,但只有一种情况。Mockito可以创建一个模拟对象,在第一次尝试时返回一个东西,跟踪尝试的次数并根据尝试次数返回不同的结果吗?我唯一能想到的就是实现我自己的HttpResponse。Mockito有更好的方法吗?

aemubtdh

aemubtdh1#

截断连续调用(迭代器风格的截断)
https://www.javadoc.io/doc/org.mockito/mockito-core/latest/org/mockito/Mockito.html#10

when(mock.someMethod("some arg"))
   .thenThrow(new RuntimeException())
   .thenReturn("foo");

 //First call: throws runtime exception:
 mock.someMethod("some arg");

 //Second call: prints "foo"
 System.out.println(mock.someMethod("some arg"));

 //Any consecutive call: prints "foo" as well (last stubbing wins).
 System.out.println(mock.someMethod("some arg"));

字符串

相关问题