Return 不同的值取决于时间值
Return different value depends on times value
循环中有调用方法的代码,我想测试方法在第一次尝试中抛出异常 2 次,然后 return 是一个有效值的情况。
我使用 JMockit 编写了以下代码:
new Expectations() {{
someService.call(anyString);
times = 2;
result = exception;
someService.call(anyString);
result = entity;
}};
在这种情况下,它 someService::call
总是 returns entity
。
如何在前两个调用中 return exception
然后在测试中 return entity
?
我觉得是这样的:
Service someService = mock(Service.class);
when(someService(any()))
.thenThrow(new RuntimeException())
.thenThrow(new RuntimeException())
.thenReturn("foo");
应该可以
与任何其他模拟 API 一样,按所需顺序记录期望的每个期望结果:
new Expectations() {{
someService.call(anyString);
result = exception;
result = exception;
result = entity;
}};
循环中有调用方法的代码,我想测试方法在第一次尝试中抛出异常 2 次,然后 return 是一个有效值的情况。 我使用 JMockit 编写了以下代码:
new Expectations() {{
someService.call(anyString);
times = 2;
result = exception;
someService.call(anyString);
result = entity;
}};
在这种情况下,它 someService::call
总是 returns entity
。
如何在前两个调用中 return exception
然后在测试中 return entity
?
我觉得是这样的:
Service someService = mock(Service.class);
when(someService(any()))
.thenThrow(new RuntimeException())
.thenThrow(new RuntimeException())
.thenReturn("foo");
应该可以
与任何其他模拟 API 一样,按所需顺序记录期望的每个期望结果:
new Expectations() {{
someService.call(anyString);
result = exception;
result = exception;
result = entity;
}};