我想测试以下场景:
- Set the
hystrix.command.default.execution.isolation.thread.timeoutInMillisecond
值设置为低值,然后查看我的应用程序的行为方式。
- 使用单元测试检查我的后备方法是否被调用。
请有人向我提供样本链接。
真正的用法可以在下面找到。在测试类中启用Hystrix的关键是这两个注解:
@EnableCircuitBreaker
@EnableAspectJAutoProxy
class ClipboardService {
@HystrixCommand(fallbackMethod = "getNextClipboardFallback")
public Task getNextClipboard(int numberOfTasks) {
doYourExternalSystemCallHere....
}
public Task getNextClipboardFallback(int numberOfTasks) {
return null;
}
}
@RunWith(SpringRunner.class)
@EnableCircuitBreaker
@EnableAspectJAutoProxy
@TestPropertySource("classpath:test.properties")
@ContextConfiguration(classes = {ClipboardService.class})
public class ClipboardServiceIT {
private MockRestServiceServer mockServer;
@Autowired
private ClipboardService clipboardService;
@Before
public void setUp() {
this.mockServer = MockRestServiceServer.createServer(restTemplate);
}
@Test
public void testGetNextClipboardWithBadRequest() {
mockServer.expect(ExpectedCount.once(), requestTo("https://getDocument.com?task=1")).andExpect(method(HttpMethod.GET))
.andRespond(MockRestResponseCreators.withStatus(HttpStatus.BAD_REQUEST));
Task nextClipboard = clipboardService.getNextClipboard(1);
assertNull(nextClipboard); // this should be answered by your fallBack method
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)