Mockito показывает неправильное исключение UnneededStubbingException - PullRequest
0 голосов
/ 25 сентября 2018

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

Но я думаю, что здесь что-то кешируется или глючит, потому что после комментирования КАЖДОГО заглушки моя IDE(IntelliJ IDEA 2018.2) по-прежнему возвращает исключение UnneededStubbingException в той же точке, в которой находился код.

Вот метод теста:

@Test
    public void testLoadData() {
        String name = "The name";
        String profilePicture = "http://url.pic.com";
        Tweet tweetOne = new Tweet(123L, "text", new Date(), name, "http://url.profile.com", 0L, 0L, "de", "twitter");
        Tweet tweetTwo = new Tweet(456L, "text", new Date(), name, "http://url.profile.com", 0L, 0L, "de", "twitter");
        Tweet tweetThree = new Tweet(789L, "text", new Date(), name, "http://url.profile.com", 0L, 0L, "de", "twitter");
        List<Tweet> tweets = new PagedList<>(Arrays.asList(tweetOne, tweetTwo, tweetThree), null, null);

//        when(connectionFactory.getOAuthOperations()).thenReturn(oAuth1Template);
//        when(connectionFactory.getOAuthOperations().exchangeForAccessToken(any(), any())).thenReturn(token);
//        when(twitter.userOperations()).thenReturn(userOperations);
//        when(userOperations.getScreenName()).thenReturn(name);
//        when(userOperations.getUserProfile()).thenReturn(userProfile);
//        when(userOperations.getUserProfile().getProfileImageUrl()).thenReturn(profilePicture);
//        when(twitter.timelineOperations()).thenReturn(timelineOperations);
//        when(twitter.timelineOperations().getUserTimeline(anyInt(), anyLong(), anyLong()))
//                .thenReturn(tweets)
//                .thenReturn(emptyList());

        TwitterImportEntity result = twitterImportService.loadData();
        assertThat(result).isNotNull();
        assertThat(result.getIdentifier()).isEqualTo(TWITTER.getType());
        assertThat(result.getAccessToken()).isNotEmpty();
        assertThat(result.getAccessToken()).isEqualTo(ACCESS_TOKEN);
        assertThat(result.getAccessTokenSecret()).isNotEmpty();
        assertThat(result.getAccessTokenSecret()).isEqualTo(ACCESS_TOKEN_SECRET);
        assertThat(result.getName()).isNotEmpty();
        assertThat(result.getName()).isEqualTo(name);
        assertThat(result.getProfilePicture()).isNotEmpty();
        assertThat(result.getProfilePicture()).isEqualTo(profilePicture);
        assertThat(result.getTweets()).isNotEmpty();
        assertThat(result.getTweets()).hasSize(tweets.size());
    }

В строке, которая говорит when(twitter.userOperations()).thenReturn(userOperations); Показываетошибка.

org.mockito.exceptions.misusing.UnneededStubbingException: в тестовом классе обнаружены ненужные заглушки: TwitterImportServiceTest Чистый и поддерживаемый тестовый код требует нуля ненужного кода.Следующие заглушки не нужны (нажмите, чтобы перейти к соответствующей строке кода):

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

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