几个小时后,我正在寻找解决方案,我得到了最简单的解决方案。我认为android库中有一些未完成的测试。所以我只是运行此gradle命令进行清理:
./gradlew clean test
现在就可以了,StaticDatabaseHelper
在这种情况下,我只是模拟类。这是我的最终测试 课程 :
public class AddressPresenterTest {
@Mock
private AddressView mView;
@Mock
private AddressDataSource mDataSource;
@Mock
private AddressLocalDataSource mLocalDataSource;
@Captor
ArgumentCaptor<DataSourceCallback<Province>> mProvinceCallbackCaptor;
private AddressPresenter mPresenter;
@Before
public void beforetest() throws Exception {
MockitoAnnotations.initMocks(this);
mPresenter = new AddressPresenter(mDataSource, mView);
mPresenter.setLocalDataSource(mLocalDataSource);
}
@Test
public void When_SelectProvince_DataIsNull_ShowErrorMessage() {
mPresenter.getLocalProvinceById(2129023);
// Cause data source has callback, we need to capture the callback
ArgumentCaptor<Integer> provinceIdCaptor = ArgumentCaptor.forClass(Integer.class);
verify(mLocalDataSource).fetchProvinceById(provinceIdCaptor.capture(), mProvinceCallbackCaptor.capture());
mProvinceCallbackCaptor.getValue().onFailedLoad();
verify(mView).loadContentError();
}
}
希望有帮助,谢谢