В этом методе я хочу высмеять и убедиться, что mSharedPrefsManager
вызывается, когда я не перехожу в определенную строку электронной почты.Как издеваться и проверять обратный вызов в методе с помощью Mockito
@Override
public void retrieveWithEmail(final String email, final WelcomeContract.Presenter presenter)
{
retrieveInteractor.buildRetrieveRequest(email, new RetrieveImpl.OnRetrieveCompletedListener()
{
@Override
public void onRetrieveCompleted(final MaitreBaseGson retrieveResponse, RetrieveImpl retrieveClass)
{
if (retrieveResponse.getStatus().equals(mContext.getString(R.string.ok)))
{
if (!email.equals("[email protected]"))
mSharedPrefsManager.storePoints(Integer.parseInt(retrieveResponse.getData().getPoints()));
presenter.updateSilhouette(retrieveResponse);
}
// Silently swallow failures
}
});
}
Однако, с моим испытанием я не в состоянии поймать ли называется mSharedPrefsManager
. Мокито говорит, что .storePoints()
никогда не называется. Я думал о том, чтобы делать doReturn().when()
, но так как это внутри метода, который не сработает, не так ли?
Как поймать взаимодействия на sharedPrefsManager
?
Mockito также говорит, что .updateSilhouette()
не называется. Нужно ли мне издеваться над onRetrieveCompleted()
?
@RunWith(MockitoJUnitRunner.class)
public class WelcomeInteractorTest
{
@Mock
RetrieveImpl retrieveInteractor;
@Mock
WelcomePresenter welcomePresenter;
@Mock
SharedPrefsManager sharedPrefsManager;
@Mock
Context context;
@InjectMocks WelcomeInteractorImpl welcomeInteractor;
@Mock
RetrieveImpl.OnRetrieveCompletedListener onRetrieveCompletedListener;
@Test
public void RetrieveWithCertainEmail_SavePoints()
{
welcomeInteractor.retrieveWithEmail("[email protected]", welcomePresenter);
verify(retrieveInteractor).buildRetrieveRequest(eq("[email protected]"), any(RetrieveImpl.OnRetrieveCompletedListener.class));
verify(sharedPrefsManager).storePoints(any(Integer.class));
verify(welcomePresenter).updateSilhouette(any(MaitreBaseGson.class));
}
}
Вы могли бы написать, как вы закончили свой код? – Caique