【问题标题】:Testing RX java测试 RX java
【发布时间】:2017-01-18 20:10:25
【问题描述】:
   public void getTerms(boolean showDialog) {
  service.getTermsFromServer().subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new SingleSubscriber<String>() {
        @Override
        public void onSuccess(String value) {

            try {
                JSONObject jsonObject = new JSONObject(value);
                JSONObject data = jsonObject.getJSONObject("data");
                String content = data.getString("content");
                String id = data.getString("id");
                if (showDialog) {
                    ***signUpView.showDialog(content, id)***;
                } else {
                    agreeTerms(id);
                }
            } catch (JSONException e) {
                e.printStackTrace();
            }
        }

        @Override
        public void onError(Throwable error) {
            Log.e(getClass().getName(), "Error : " + new Gson().toJson(error.getStackTrace()));
            ErrorCheck.processError(error, gson, signUpView);
        }
    });

}

请帮助我测试此代码。我附上了我想测试的方法。这里我想验证一下是否调用了 showDialog 方法

也附上单元测试代码

@Test
public void testGetTermsCalled(){
    String terms= "{\"data\":{\"id\":\"67f07c7a482542\",\"content\":\"<h3>Part of the test</h3>\",\"timestamp\":1484768675815,\"timestampFormatted\":\"2017-01-18T19:44:35\"},\"metadata\":null,\"version\":{\"id\":\"v1\",\"versionStatus\":\"candidate\",\"message\":null}}";
    TestSubscriber<String> testSubscriber = new TestSubscriber<>();
    signUpService.getTermsFromServer().just(terms).subscribe(testSubscriber);
    signUpPresenter.getTerms(true);
    Mockito.verify(signUpView).showDialog("<h3>Part of the test</h3>","67f07c71-1707-4b7a-a168-d7d05a482542");

}

谢谢!!!

【问题讨论】:

    标签: android unit-testing rx-java rx-android


    【解决方案1】:

    使用RxJavaPlugins.setInitIoSchedulerHandlerRxAndroidPlugins.registerSchedulersHook 指定您自己的TestScheduler,然后使用其advanceTimeBy 方法等待一段时间,然后验证是否发生了预期的调用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-22
      • 1970-01-01
      • 1970-01-01
      • 2017-04-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多