У меня есть несколько тестов Unit для моего проекта, и они работают, если я запускаю их с IntelliJ.Однако, если я запускаю их с Maven, многие из них потерпят неудачу.Я использую SpringBoot.
@RunWith(SpringRunner.class)
@ActiveProfiles("test")
@SpringBootTest(classes = MainApplication.class)
public class ServiceTest {
private static boolean mockInitialized = false;
@Autowired
private IService Service;
@MockBean
private IDAO DAO;
@MockBean
private ISearchDAO SearchDAO;
@Before
public void setUp() {
if (!mockInitialized) {
MockitoAnnotations.initMocks(this);
mockInitialized = true;
}
}
@Test
public void getByIdPersists() throws Exception {
DTO dto = new DTO(1, "test");
when(DAO.getById(1)).thenReturn(dto);
DTO found = Service.getById(1);
verify(DAO).getById(1);
assertEquals(dto, found);
}
Выполненный DAO не совпадает с проверяемым в Maven, пока он находится в IntelliJ. Сообщение об ошибке для этого:
[ERROR] getByIdPersists (ServiceTest)) Прошедшее время: 0 с <<< ОШИБКА!org.mockito.exceptions.misusing.UnfinishedVerificationException: </p>
Отсутствует вызов метода для verify (mock) здесь: -> в ServiceTest.getByIdPersists (ServiceTest.java:130)
Пример правильной проверки:проверить (макет) .doSomething ()