【发布时间】:2020-01-20 16:48:11
【问题描述】:
我的项目中定义了多个路由类,位于 com.comp.myapp.routes 下。 为了测试这些,我正在模拟最终路线并检查/比较收到的交付。
比如说我有以下路线:
public class MyRoute1 extends RouteBuilder {
public void configure() throws Exception {
//Route_1 code
}
}
public class MyRoute2 extends RouteBuilder {
public void configure() throws Exception {
//Route_2 code
}
}
....
...//some route impl
..
public class MyRouteN extends RouteBuilder {
public void configure() throws Exception {
//Route_N code
}
}
现在,对于所有这些路线,我编写的测试用例似乎都是一样的。 先模拟一下。
模拟 MyRoute1:
public class MyRoute1_Mock extends RouteBuilder {
public void configure() throws Exception {
from("direct:sampleInput")
.log("Received Message is ${body} and Headers are ${headers}")
.to("mock:output");
}
}
测试 MyRoute1:
public class MyRoute1_Test extends CamelTestSupport {
@Override
public RoutesBuilder createRouteBuilder() throws Exception {
return new MyRoute1_Mock();
}
@Test
public void sampleMockTest() throws InterruptedException {
String expected="Hello";
/**
* Producer Template.
*/
MockEndpoint mock = getMockEndpoint("mock:output");
mock.expectedBodiesReceived(expected);
String input="Hello";
template.sendBody("direct:sampleInput",input );
assertMockEndpointsSatisfied();
}
}
现在要对其他类进行单元测试,只需复制并粘贴上述不同名称的代码,例如 MyRoute2_Test 、 MyRoute3_Test 、 ...MyRouteN_Test 。
那么它实际测试了什么? 它只是为了编写测试用例而编写的。 它实际上只是检查/测试模拟库和骆驼测试库是否工作我们的代码是否工作? 实际应该怎么做?
【问题讨论】:
标签: java unit-testing junit apache-camel