У меня есть основной EJB, который внедряет DAO EJB:
@Stateless
@LocalBean
public class MainEjb {
@Inject
private DaoEjb dao;
public MyClass someMethod(int i) {
return dao.read(i);
}
}
@Stateless
@LocalBean
public class DaoEjb {
public MyClass read(int i){
// get MyClass object using jdbc
return object;
}
}
Теперь я хочу протестировать MainEjb.someMethod()
, используя jUnit + Mockito, вводя в тесте реальный MainEjb
и высмеивая DaoEjb.read() method to return a
Объект MyClass` (вместо того, чтобы делать вызов jdb c):
@RunWith(MockitoJUnitRunner.class)
public class UserBeanUnitTest {
@InjectMocks
private MainEjb bean;
DaoEjb dao = mock(DaoEjb.class);
@Test
public void testBean() {
MyClass object = new MyClass();
// set object fields
assertThat(bean.someMethod(1)).isEqualTo(object);
}
}
Проблема в том, что я не знаю, как соединить бины bean
и dao
, поэтому это не работает Я знаю, что могу сделать это с Arquillian, но я пытаюсь избежать создания экземпляра контейнера. Можно ли это сделать с помощью Mockito
?