Я тестирую модуль с помощью Powermock и Easymock. У меня есть один метод, который внутренне вызывает метод, который возвращает объект Entity Manager (который инициализируется весной). Как мне высмеять эту функцию из моего кода юнита? Есть ли другой подход? В настоящее время я написал код, который выглядит примерно такНе удается высмеять вызов функции Entity Manager
BaseJpaDaoImpl jpaDaoImplMock= EasyMock.createNiceMock(BaseJpaDaoImpl.class);
EasyMock.expect(jpaDaoImplMock.getEntityManager(true)).andReturn().anyTimes();
EasyMock.replay(jpaDaoImplMock);
BaseJpaDaoImpl содержит метод, который возвращает экземпляр Entity Manager.
protected EntityManager getEntityManager(boolean throwExceptionIfNotSet) {
if(throwExceptionIfNotSet && entityManager == null) {
logger.error("EM is NULL");
throw new IllegalStateException("Deployment Issue, EM is Null!");
}
return entityManager;
}
, который выглядит следующим образом
Любая помощь будет оценена Спасибо большое !!
Установка тестового класса
@RunWith(PowerMockRunner.class)
@PrepareForTest({RequestContextHelperUtil.class, BaseJpaDaoImpl.class,SearchAwareBaseJpaDaoImpl.class})
public class InventoryDaoJpaImplTest {
@Test
public void ABC() throws Exception {
PowerMock.mockStatic(RequestContextHelperUtil.class);
BaseJpaDaoImpl jpaDaoImplMock= EasyMock.createNiceMock(BaseJpaDaoImpl.class);
EasyMock.expect(jpaDaoImplMock.getEntityManager(true)).andReturn(null).anyTimes();
EasyMock.replay(jpaDaoImplMock);
Можете ли вы показать весь тестовый класс или, по крайней мере, его начало (определение класса + аннотации)? – Mureinik
в методе andReturn() Мне нужно получить объект, чтобы действительно вернуть что-то и высмеять его – Vihar