Mockito SpyBean выбрасывает исключение незаконченной заглушки - PullRequest
2 голосов
/ 05 апреля 2019

Я пытаюсь частично смоделировать службу, используя Spy от Mockito, переопределяя метод, чтобы он возвращал непротиворечивые данные для тестирования, но сказал, что шпион генерирует исключение UnfinishedStubbingException без видимой причины.

Это мой тестовый класс:

@SpringBootTest
@RunWith(SpringRunner.class)
public class ApplicationIT {

    private CompletableFuture<JobList> jobList;

    @SpyBean
    private Service serviceSpy;

    @Before
    public void setUp() {
        initMocks(this);

        jobList = new CompletableFuture<>();
        jobList.complete(jobList.newBuilder()
                .addAllJobs(jobTestData.getTestJob().getJobs()).build()); 

        Mockito.doReturn(jobList).when(serviceSpy).fetchJob();  
        Mockito.doNothing().when(serviceSpy).reportSuccess(Mockito.any());
    }

    @Test
    public void fetchJobCallTest() {
        Mockito.verify(serviceSpy, timeout(60000).atLeastOnce()).fetchJob();
    }

    @Test
    public void reportSuccessCallTest() {       
        Mockito.verify(serviceSpy, timeout(60000).atLeastOnce()).reportSuccess(Mockito.any());
    }
}

Оба теста не пройдены: org.mockito.exceptions.misusing.UnfinishedStubbingException указывает на Mockito.doReturn(jobList).when(serviceSpy).fetchJob(); при Mockito.doNothing().when(serviceSpy).reportSuccess(Mockito.any());

1 Ответ

0 голосов
/ 05 апреля 2019
UnfinishedStubbingException means you are not mocking properly
this is not the right way of mocking a method... Mockito.doReturn(jobList).when(serviceSpy).fetchJob();
You can try below...
Examples of correct stubbing:
    when(mock.isOk()).thenReturn(true);
    when(mock.isOk()).thenThrow(exception);
    doThrow(exception).when(mock).someVoidMethod();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...