我需要在 JavaEE 环境中测试一些组件,这些组件使用来自Microprofile项目的注释,即来自项目容错部分的@Asynchronous 和 @Timeout 。容错的实现库是Apache safeguard。在其他测试中,我使用嵌入了 TomEE 的 Arquillian。
问题是在执行测试用例期间这些注释被忽略了,但是当应用程序在普通的 TomEE 服务器上运行时,至少 @Timeout 可以按预期工作。
除了调试一点,我从AsynchronousTest.java中获取一个 TCK 测试用例并导入到我的项目中进行测试:
@Test
public void testAsyncIsNotFinished() {
Future<Connection> future = null;
try {
future = client.service();
}
catch (InterruptedException e) {
throw new AssertionError("testAsync: unexpected InterruptedException calling service");
}
Assert.assertFalse(future.isDone());}
而这个案子是失败的。