Вопрос по mockito – Методы Мокито не доступны

8

У меня есть настройка mockito на моем проекте с этими линиями maven:


    org.mockito
    mockito-all
    1.8.5
    test

У меня нет проблем, чтобы использовать@Mock аннотации, но я могуt доступ и использование таких методов, как:

when(someMock.someMethod()).thenReturn();

Затмение просто не узнает их.

Пожалуйста помоги.

Что это? Ido Barash
импортировать статический org.mockito.Mockito. *; Dawood ibn Kareem
Я заметил, что нет org.mockito.Mockito. * - внутри нет другой библиотеки Mockito Ido Barash
да. Я импортировал org.mockito. *. все еще не работает Ido Barash

Ваш Ответ

1   ответ
26

Mockito.when(foo.getBar()).thenReturn(baz) а такжеMockito.verify(foo).getBar(), который выигралне полагайтесь на статический импорт. в отличие от@Mock аннотация, которая технически является классом,when а такжеverify статические методы класса Mockito.

Как только у вас это получится, попробуйте статический импорт, на который ссылался Дэвид:

import static org.mockito.Mockito.when;   // ...or...
import static org.mockito.Mockito.*;      // ...with the caveat noted below.

Это позволит вам использоватьMockito.when без указанияMockito учебный класс. Вы также можете использовать подстановочный знак, но такэтот так ответ Java документы рекомендуем использовать подстановочные знаки экономно - тем более, что он может сломаться, если статический метод с аналогичным именем будет добавлен в Mockito позже.

Добавлениеimport org.mockito.*; недостаточно, потому что это добавляет все классы вorg.mockito пакет, но не методы.org.mockito.Mockito

В частности, для Eclipse вы можете добавить статический импорт, поместив курсор наwhen частьMockito.when и нажав Control-Shift-M ("Добавить импорт »). Вы также можете добавитьorg.mockito.Mockito в избранное (Окно> Настройки> Java> Редактор> Помощник по контенту> Избранное> Новый тип), чтобы все статические методы Mockito отображались в подсказке содержимого Ctrl-Space, даже если у вас нетспециально импортировал их. (Вы также можете сделать это для org.mockito.Matchers, которые технически доступны на org.mockito.Mockito через наследование, но по этой причине могут не отображаться в Eclipse.)

+1 за дополнительный совет по содержанию: добавление org.mockito.Matchers из-за проблемы наследования codefan-BK
+1 за подсказку по содержанию. Это сработало для меня. Traxex1909

Похожие вопросы