Отображение взаимодействий с аннотированным макетом @MockBean

В приложениях Spring можно писать тесты с фиктивными бинами, которые по умолчанию автоматически подключены и которые могут быть дополнительно настроены с помощью обычных методов Mockito. Для этого используется аннотация @MockedBean. Однако при использовании только Mockito без Spring можно настроить макеты для печати всех взаимодействий, см. Как использовать Mockito для отображения всех вызовов на макете. Возможна ли эта отладка также с бобовыми бобами?

1 ответ

Спринта не существует, но можно использовать mockingDetails(<some mock>) Метод из Mockito, чтобы получить MockingDetails макета, а затем распечатать взаимодействия. Поместите отладку в аннотированный метод @After, чтобы показывать его каждый раз, даже если тест не пройден.

import static org.mockito.Mockito.mockingDetails;
import org.junit.After;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.mock.mockito.MockBean;
import org.springframework.test.context.junit4.SpringRunner;
import com.fasterxml.jackson.core.JsonProcessingException;

@RunWith(SpringRunner.class)
@SpringBootTest(
public class MyTest {
    @MockBean
    LoginDAO loginDaoMock;

    @Test
    public void xyz()  {
    // some test
    }

    @After
    public void showInteractions() {
        System.out.println(mockingDetails(loginDaoMock).getInvocations());
    }
}
Другие вопросы по тегам