Этот тест работает:
@RunWith(MockitoJUnitRunner.class)
public class Test1 {
@InjectMocks private MyBean bean;
@Test
public void shouldWork() {
bean.test("ABC");
}
}
@Stateless
public class MyBean {
public String test(String s) {
System.out.println("This is a test " + s);
return s;
}
}
Теперь я хочу внедрить новый EJB MyBean2 в MyBean и провести повторную проверку.Для этого я также издеваюсь над MyBean2 в Test1.Это новый тест:
@RunWith(MockitoJUnitRunner.class)
public class Test1 {
@Mock MyBean2 bean2;
@InjectMocks MyBean bean;
@Test
public void shouldWork() {
bean.test("ABC");
}
}
@Stateless
public class MyBean {
@Inject
MyBean2 bean2;
public String test(String s) {
return s + bean2.test2();
}
}
@Stateless
public class MyBean2 {
public String test2() {
return "DEF";
}
}
Но когда я запускаю это, я получаю NullPointerException
, когда бин пытается вызвать метод bean2, возможно, потому что Mockito не распознает введенный бин как EJB.
Как заставить это работать?