相关疑难解决方法(0)

验证rxjava订阅者中的交互

在MVP模式中描绘您的演示者订阅返回观察者的服务的情况:

public void gatherData(){
   service.doSomeMagic()
      .observeOn(Schedulers.io())
      .subscribeOn(AndroidSchedulers.mainThread())
      .subscribe(new TheSubscriber());
}
Run Code Online (Sandbox Code Playgroud)

现在该类从视图中TheSubscriber调用onNext一个方法,例如:

@Override public void onNext(ReturnValue value) {
  view.displayWhatever(value);
}
Run Code Online (Sandbox Code Playgroud)

现在,在我的单元测试中,我想验证当在gatherData()非错误情况下调用该方法时,将调用视图的方法displayWhatever(value).

问题:

有干净的方法吗?

背景:

  • 我正在使用mockito验证交互,当然还有更多
  • Dagger正在注射整个主持人,除了 TheSubscriber

我试过了什么:

  • 注入订阅者并在测试中模拟它.看起来有点脏,因为如果我想改变演示者与服务交互的方式(说不是Rx),那么我需要改变很多测试和代码.
  • 模拟整个服务.这不是那么糟糕,但要求我嘲笑很多方法而且我没有完全达到我想要的.
  • 在互联网上查找,但没有人似乎有一个干净的直接方式这样做

谢谢您的帮助

android mockito rx-java

3
推荐指数
1
解决办法
1987
查看次数

标签 统计

android ×1

mockito ×1

rx-java ×1