【发布时间】:2017-08-09 02:17:02
【问题描述】:
我想知道如何通过 rxjava2 测试 Retrofit2 调用。我的改造 api 界面如下所示:
public interface LoginApiMapping {
@POST("v1/secm/oam/oauth2/token")
Observable<Response<RestResponseHolder<LoginResponseModel>>> login(@Body LoginModel model);
}
我想编写一个测试,它将通过 RxJava2 发送这个请求并检查响应。我认为 RxJava 存在问题,因为它是异步的,并且测试在我得到响应之前完成,所以我尝试使用 TestSubscriber,如下所示,但无法订阅 TestSubscriber
@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);
}
谁解决了这个问题?谢谢
【问题讨论】:
标签: android api unit-testing retrofit2 rx-java2