Я пытаюсь настроить модульные тесты для приложения, использующего Mockito и JUnit.Данное приложение просто работает с методами CRUD в базе данных SQL.Методы связаны от уровня DAO к клиентскому уровню обслуживания через уровень менеджера.На этом уровне менеджера я пытаюсь сфокусировать свои тесты.
На данный момент я только сделал тест для метода create, и он возвращает следующую ошибку:
Wanted but not invoked:
dao.createEntry(profile);
-> at com.example.tests.ManagerCRUDTests.testProfileCreate(ManagerCRUDTests.java:60)
Actually, there were zero interactions with this mock.
Мой код выглядит следующим образом:
public class ManagerCRUDTests {
private final Logger logger = LoggerFactory.getLogger(ManagerCRUDTests.class.getName());
@Mock
private CrudDAO<Profiles> dao;
@Mock
private ProfileManagerImpl manager;
@Mock
Profile profile = new Profile();
public Profile setProfile() {
profile.setId(1);
profile.setName("test");
return profile;
}
@Before
public void init() {
MockitoAnnotations.initMocks(this);
}
@Test
public void testProfileCreate() throws Exception {
setProfile();
logger.info("Testing create for Manager");
logger.info("Parameters: {}", profile);
manager.createEntry(profile);
verify(dao).createEntry(ArgumentMatchers.eq(profile)); //this is where it is failing
logger.info("Test passed");
}
}
Я впервые работаю с юнит-тестами;до этого я только делал интеграционные тесты.Я делаю что-то не так, когда пишу свой метод проверки или издеваюсь над объектами.