我有一个使用apache camel的应用程序,它使用强大的驼峰测试支持完全覆盖了单元测试。这些测试涵盖了骆驼路线的每个部分,并且工作正常。
我现在想要编写不会模拟Camel调用的端点的集成测试。例如,我想测试应用程序的一部分,其行为如下:
测试看起来像这样
// start activemq, applications, etc...
WebTarget target = //initialize a JAX RS webtarget
DTO data = // generate some datas
Response r = target .path("url").request(MediaType.APPLICATION_JSON).post(Entity.json(data));
Assert.assertEquals(r.getStatus(), 202);
// stop activemq, applications, etc...
这部分效果很好。
现在的问题是:如果端点回复500代码,我会在mongo数据库中记录错误。我希望我的集成测试检查一下。
我试过了:
// start activemq, applications, etc...
WebTarget target = //initialize a JAX RS webtarget
DTO data = // generate some datas that generate an error
Response r = target .path("url").request(MediaType.APPLICATION_JSON).post(Entity.json(data));
Assert.assertEquals(r.getStatus(), 202);
Thread.sleep(1000);
assertErrors(1); // check in mongo if error is written
// stop activemq, applications, etc...
我不喜欢Thread.sleep(1000)
。
我的问题是:
感谢您的建议。
答案 0 :(得分:0)
正如mdnghtblue在评论中提到的,NotifyBuilder是正确的答案