Вызов метода mockito для определенного класса <T> - PullRequest
0 голосов
/ 06 ноября 2018

Мне интересно проверить мой интерактор, и часть тестового кода высмеивает интерфейс Callback, который реализован для различных объектов в BaseInteractor, который реализуют все Interactors.

    public interface Callback<T> {

    void onSuccess(T response);

    void onError(Exception exception);

}

Я хочу проверить метод onSuccess, и я сделал это:

    @Test
public void shouldGetContributorsSuccess() {

    repository = mock(Repository.class);
    List<Contributor> contributor = getMockContributor();
    GetContributorsInteractor interactor = getFilterReports();
    GetContributorsInteractor.Callback callback = mock(GetContributorsInteractor.Callback.class);

    interactor.execute(contributor.get(0).getUserName(), "Hello_World", callback);

    verify(callback).onSuccess(contributor);
}

когда я хочу смоделировать Обратный звонок в этой строке:

    GetContributorsInteractor.Callback callback = mock(GetContributorsInteractor.Callback.class);

после этого я вызываю verify(callback).onSuccess(contributor); и показываю предупреждение, в котором говорится о непроверенном вызове onSuccess (T) в качестве члена необработанного типа '... .BaseInteractor.Callback'.

Я не знаю, должен ли я указать в строке mock определенный тип как GetContributorsInteractor.Callback, но выдает исключение или что.

Заранее спасибо!

Возможно, это потому, что я раньше не использовал мокито ...

UPDATE

Я подавляю предупреждения и обнаружил ошибку, которая говорит:

Argument(s) are different! Wanted:
callback.onSuccess(
    [com.example.x.iphonedroid.domain.entities.Contributor@2f686d1f]
);
-> at com.example.x.iphonedroid.domain.GetContributorsInteractorTest.shouldGetContributorsSuccess(GetContributorsInteractorTest.java:61)
Actual invocation has different arguments:
callback.onSuccess(
    []
);

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

В последней строке метода проверки я передаю "List " и кажется, что это будет пустой список.

...