通过持续查找对@EJB进行JMockit测试失败

时间:2018-06-21 15:59:28

标签: jmockit

在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  
    }
}

1 个答案:

答案 0 :(得分:0)

@Injectable字段(或参数)的名称应与Java EE批注中指定的名称(即@Injectable TypeToInject someBeanName的{​​{1}})匹配,而不与目标字段的名称匹配。 (例如,如果没有使用@EJB(lookup="someBeanName"),则在那里没有指定名称)。 @Inject的API文档中提到了这一点。