BDD Mockito - псевдоним проверки (...) при использовании аргумента захвата? - PullRequest
0 голосов
/ 31 октября 2018

Я написал тест, который использует BBDMockito и Argument Captor. Аргумент Captor используется только для захвата обратного вызова и вызова onDataNotAvailable(), , но не для проверки .

@Test
public void loadNoItemFromRepository_showsMissingItem() {
    //given
    itemDetailPresenter = new ItemDetailPresenter(UNCHECKED_ITEM.getId(), itemsRepository, itemDetailView);
    given(itemDetailView.isActive()).willReturn(true);

    //when
    itemDetailPresenter.load();
    verify(itemsRepository).getItem(eq(UNCHECKED_ITEM.getId()), getItemCallbackArgumentCaptor.capture());
    getItemCallbackArgumentCaptor.getValue().onDataNotAvailable();

    //then
    then(itemDetailView).should().showMissingItem();
}

Verify, помещенный в раздел //when, вводит в заблуждение, поскольку название предполагает, что его следует поместить в раздел проверки (//then). Есть ли псевдоним для verify(), чтобы я мог использовать его с аргументом captor, и имя будет более подходящим для //when?

Отредактировано:

Код, который я хочу проверить, это если itemDetailView.showMissingItem() был вызван.

public void load() {
    (...)
    itemsRepository.getItem(itemId, new ItemsDataSource.GetItemCallback() {
        @Override
        public void onItemLoaded(Item item) {
            (...)
            if (nonNull(item))
                showItem(item);
            else
                itemDetailView.showMissingItem();
        }

        @Override
        public void onDataNotAvailable() {
            (...)
            itemDetailView.showMissingItem();
        }
    });
}

1 Ответ

0 голосов
/ 01 ноября 2018

verify(...) - это утверждение, оно используется для проверки того, был или не был вызван метод, и сколько раз - оно принадлежит в разделе //then

Я вижу, что вы также используете аргументapCaptor, но ничего с ним не проверяете. Надо правильно утверждать, что захваченное значение (getItemCallbackArgumentCapture.getValue() содержит / равно значению, которое вы ожидаете).

...