請幫我這個當我運行所有的類測試方法一起測試,儘管這種方法的方法失敗時,我獨自運行它,它成功Android的單元測試運行所有類的測試失敗,但每個單獨的方法成功運行
public class RealEstatesListPresenterTest {
RealEstatesListPresenter mRealEstatesListPresenter;
@Mock
private RealEstateListBusiness mRealEstateListBusiness;
@Mock
private RealEstatesListContract.View mRealEstatesView;
@BeforeClass
public static void setUpClass() {
RxAndroidPlugins.setInitMainThreadSchedulerHandler(__ -> Schedulers.trampoline());
}
@Before
public void setupTasksPresenter() {
MockitoAnnotations.initMocks(this);
mRealEstatesListPresenter = new RealEstatesListPresenter(mRealEstatesView);
mRealEstatesListPresenter.setmRealEstateListBusiness(mRealEstateListBusiness);
}
@Test
public void testWhenGetAllRealEstates_ProgressISDisplayed() {
when(mRealEstateListBusiness.getAllRealEstates()).thenReturn(Observable.create(sub -> {
sub.onNext(new ArrayList<>());
sub.onComplete();
}));
mRealEstatesListPresenter.getAllRealEstates();
verify(mRealEstatesView, times(1)).showLoading();
}
@Test
public void testWhenGetAllRealEstatesSuccess_ProgressISHidden() {
when(mRealEstateListBusiness.getAllRealEstates()).thenReturn(Observable.create(sub -> {
sub.onNext(new ArrayList<>());
sub.onComplete();
}));
mRealEstatesListPresenter.getAllRealEstates();
verify(mRealEstatesView, times(1)).hideLoading();
}
@Test
public void testWhenGetAllRealEstatesError_ProgressISHidden() {
when(mRealEstateListBusiness.getAllRealEstates()).thenReturn(Observable.create(sub -> {
sub.onError(new Throwable());
}));
mRealEstatesListPresenter.getAllRealEstates();
verify(mRealEstatesView, times(1)).hideLoading();
}
@AfterClass
public static void tearDownClass() {
RxAndroidPlugins.reset();
}}
當我一起運行所有的測試前兩個方法通過,但最後一個失敗(testWhenGetAllRealEstatesError_ProgressISHidden),但當我單獨運行它通過。
,這是演示代碼
public class RealEstatesListPresenter implements RealEstatesListContract.Presenter {
private RealEstatesListContract.View mView;
private RealEstateListBusiness mRealEstateListBusiness;
private CompositeDisposable mSubscriptions;
@Inject
public RealEstatesListPresenter(RealEstatesListContract.View view) {
this.mView = view;
mSubscriptions = new CompositeDisposable();
}
@Inject
public void setmRealEstateListBusiness(RealEstateListBusiness mRealEstateListBusiness) {
this.mRealEstateListBusiness = mRealEstateListBusiness;
}
@Inject
public void setupListeners() {
mView.setPresenter(this);
}
@Override
public void unSubscribe() {
mSubscriptions.clear();
}
@Override
public void getAllRealEstates() {
mView.showLoading();
mSubscriptions.add(mRealEstateListBusiness.getAllRealEstates().observeOn(AndroidSchedulers.
mainThread()).subscribeOn(Schedulers.io()).subscribe((realEstatesItems) -> {
mView.hideLoading();
mView.showAllRealEstates(realEstatesItems);
}, throwable -> {
mView.hideLoading();
mView.showErrorMessage(throwable.getMessage());
}));
}
}
看來你忘了展示測試 –
我編輯的問題抱歉.. –