在JMockit测试的@Tested类的路径中,接口上存在@EJB(lookup =“ somebeanname”),由于所有测试在测试用例中均无法@Injectable,因此导致所有测试均失败。
有人有建议吗?我们的解决方法是对此进行封装。但是,我希望某些注释会是更好的解决方案。
public class TestClass {
@Tested ValidatorClass validator;
@Injectable StaticAPILookup staticItem;
@Test
public void test1() {
Object objToValidate = new Object(); //Assume something here to do work on
Object results = validator.doWork(objToValidate)
}
}
public class ValidatorClass {
@EJB (lookup="jndiLookString")
private StaticAPILookup staticItem;
public Object doWork(Object someObject) {
---code in here is not important
}
}
答案 0 :(得分:0)
@Injectable
字段(或参数)的名称应与Java EE批注中指定的名称(即@Injectable TypeToInject someBeanName
的{{1}})匹配,而不与目标字段的名称匹配。 (例如,如果没有使用@EJB(lookup="someBeanName")
,则在那里没有指定名称)。 @Inject
的API文档中提到了这一点。