我想知道如何通過rxjava2測試Retrofit2調用。我的改裝API接口的樣子:如何測試Retrofit2 + RxJava2 api調用?
public interface LoginApiMapping {
@POST("v1/secm/oam/oauth2/token")
Observable<Response<RestResponseHolder<LoginResponseModel>>> login(@Body LoginModel model);
}
,我想編寫測試,這將通過RxJava2發送該請求,並檢查響應。我認爲有與RxJava的問題,因爲它是異步的,在測試完成之前,我得到的迴應,所以我試圖如下使用TestSubscriber,但是這是不可能的認購TestSubscriber <響應< RestResponseHolder < LoginResponseModel > > >我預計
@Test
public void loginTest(){
Context appContext = InstrumentationRegistry.getTargetContext();
Api t = TestApi.create(appContext);
LoginModel loginModel = new LoginModel("username","password");
TestSubscriber<Response<RestResponseHolder<LoginResponseModel>>> testSubscriber = new TestSubscriber<>();
t.get(LoginApiMapping.class).login(loginModel).subscribe(testSubscriber);
}
誰解決了這個問題?感謝
非常感謝您的回覆,我認爲它會很有用,但首先我需要能夠訂閱TestSubscriber>>什麼是不可能的。也許它可能有一些通用性的問題?在這個例子中,它似乎與對象RubberChicken一起工作http://fedepaol.github.io/blog/2015/09/13/testing-rxjava-observables-subscriptions/。也許它的RxJava2?當我嘗試訂閱我的對象時,我甚至無法編譯它。 –
Houskov