Я пытаюсь создать макет данных для класса Dao. Тестовый пример выполняется успешно, но он возвращает нулевые данные. Я искал и реализовал @Mock, @InjectMocks, Inititated MockitoAnnotation, но все же он не работает. Проект весной. Контекстный путь также верен. Я не использовал других методов. Сначала для запуска я пытаюсь просто вызвать метод и распечатать. Пожалуйста, помогите мне решить эту ошибку.Получение нулевого ответа при создании Mock Dao с использованием Mockito
RegionManager Класс:
@Service("regionManager")
public class RegionManager implements RegionManagerIntf {
@Autowired
RegionDaoIntf regionInquiry;
private RegionDao regionDao;
@Override
public ListPojo retrieveData(String Id, String details, String code) {
return regionInquiry.retrievePData(Id, details, code);
}
public RegionDao getRegionDao() {
return regionDao;
}
public void setRegionDao(RegionDao regionDao) {
this.regionDao = regionDao;
}
}
ДАО Класс:
@Component
public class RegionProcessorFactory implements RegionProcessorIntf {
private static final Logger logger = Logger
.getLogger(RegionProcessorFactory.class);
@Override
public ListPojo retrieveData(String Id,
String details, String code) {
ListPojo listPojo = new ListPojo();
//Do some action
return listPojo;
}
}
ListPojo:
It contains getter setters.
испытаний Класс:
import static org.junit.Assert.assertEquals;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.mockito.runners.MockitoJUnitRunner;
import org.springframework.test.context.ContextConfiguration;
import com.fasterxml.jackson.databind.ObjectMapper;
@RunWith(MockitoJUnitRunner.class)
@ContextConfiguration({"classpath*:spring/beanRefContext.xml"})
public class RegionManagerTest
{
private String Id = "12345";
private String Code = "123";
private String details = "12";
ObjectMapper mapper;
@Mock
private RegionProcessorFactory dao;
@Mock
private ListPojo listPojo;
@InjectMocks
private RegionManager service;
/**
* Before method will be called before executing every test case
*/
@Before
public void initialize() {
System.out.println("In initialize");
MockitoAnnotations.initMocks(this);
dao = mock(RegionProcessorFactory.class);
listPojo = mock(ListPojo.class);
service = new RegionManager();
service.setRegionDao(dao);
}
@Test
public void CreateDatabaseMock() throws Exception
{
System.out.println("dao result :: "+dao.retrieveData(Id, "", ""));
when(dao.retrieveData(Id, "", "")).thenReturn(listPojo);
verify(dao).retrieveData(Id, "", "");
}
/**
* After method will be called after executing every test case
*/
@After
public void TearDownClass() {
}
}
Какова ошибка, которую вы получаете во время выполнения этого Junit? Одна возможная ошибка, которую я вижу в этом коде, заключается в том, что вы должны написать service = new RegionManager(); stmt перед MockitoAnnotations.initMocks (это) – Shubhi224