JUnit测试AroundInvoke拦截器

时间:2016-04-12 08:32:38

标签: java junit cdi weld needle4j

$OMPI_SOURCE/opal/mca/btl/tcp/

(在服务器上运行此拦截class AbstractXYZClass{ ... @AroundInvoke public Object intercept(InvocationContext ctx) ... { log("do intercepting"); ctx.proceed(); } ... } @Stateless class XYZClass extends AbstractXYZClass{ ... public void iWantToTestThisMethod() {...} ... } 工作正常)

在我的单元测试中(使用Needle ... iWantToTestThisMethod() ...)@ObjectUnderTest(implementation=XYZClass.class)没有被调用

如何通过@AroundInvoke拦截JUnit-test XYZClass::iWantToTestThisMethod

1 个答案:

答案 0 :(得分:0)

Needle4j是依赖注入“模拟器”,它不支持高级生命周期和范围。因此,您必须提出不同的测试策略。 在注入和验证正确的方法交互时,我会坚持使用needle4j,但是切换到类似CDI-Unit或Arquillian的实际框架行为测试。