class AbstractXYZClass{
...
@AroundInvoke
public Object intercept(InvocationContext ctx) ... {
log("do intercepting");
ctx.proceed();
}
...
}
@Stateless
class XYZClass extends AbstractXYZClass{
...
public void iWantToTestThisMethod() {...}
...
}
(在服务器上运行此命令,对
iWantToTestThisMethod()
的拦截工作正常)在我的单元测试中(使用Needle ...
@ObjectUnderTest(implementation=XYZClass.class)
...)@AroundInvoke
不会被调用如何通过
XYZClass::iWantToTestThisMethod
截获JUnit测试intercept()
? 最佳答案
Needle4j是一个依赖项注入“模拟器”,它不支持高级生命周期和作用域。因此,您将不得不提出不同的测试策略。
在注入和正确方法交互的验证方面,我会坚持使用needle4j,但是对于实际的框架行为测试,请切换至CDI-Unit或Arquillian之类。