mockito-core:2.7.10
我正在使用mockito
测试以下方法@Override
public void detachView() {
mMovieListViewContract = null;
mMovieModelContract.releaseResources();
}
我正在发布具有void返回的releaseResources方法。并进行测试以确保只能调用一次存根版本。
@Override
public void releaseResources() {
if(mSubscription != null && !mSubscription.isUnsubscribed()) {
mSubscription.unsubscribe();
}
}
我写了以下测试:
@Test
public void shouldReleaseModelResourcesWhenDetached() {
doNothing().when(mockMovieListModelContract).releaseResources();
movieListPresenterContract.detachView();
verify(mockMovieListModelContract, times(1)).releaseResources();
}
我想验证mockMovieListModelContract.releaseResources()
的存根版本只被调用一次。
以下测试未通过:
verify(mockMovieListModelContract, times(1)).releaseResources();
测试失败了:
Wanted but not invoked:
movieListModelContract.releaseResources();
Actually, there were zero interactions with this mock.
所以我改为使用通过测试的verifyZeroInteractions(mockMovieListModelContract);
。但是,验证只能调用一次存根版本的测试。
答案 0 :(得分:2)
直截了当:模拟框架告诉你没有在该模拟对象上调用此方法。
只有两个解释: