我有以下测试类:
@RunWith(Arquillian.class)
public class MyTest {
@Inject
@Uri("mock:repositoryRoute")
private ProducerTemplate producer;
@Inject
@Mock("direct:someStart")
private MockEndpoint endRoute;
@Inject
private ModelCamelContext modelContext;
@Before
public void init() throws Exception {
modelContext.start();
}
@After
public void stopContext() throws Exception {
modelContext.stop();
}
@Deployment
public static Archive<?> deploy() {
// deployment code
}
@Test
public void test1() throws Exception {
endRoute.expectedMessageCount(1);
producer.sendBody("direct:someStart", someBody);
endRoute.assertIsSatisfied();
}
@Test
public void test2() throws Exception {
endRoute.expectedMessageCount(1);
producer.sendBody("direct:someStart", someBody);
endRoute.assertIsSatisfied();
}
}
运行测试类之后:
但是,如果我在忽略 test1 的情况下运行测试类,则 test2 会通过。
有人可以解释一下这种行为的原因并告诉我如何解决这个问题吗?
修改
在调试MockEndpoint并且我已经注意到计数器字段意外地在执行一次测试时从测试次数的变化变为零。所以我想知道是否还有一个MockEndpoint实例被创建了?