Модульное тестирование с использованием макетов работает в IntelliJ, не работает с Maven - PullRequest
0 голосов
/ 10 мая 2018

У меня есть несколько тестов 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 ()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...