如何使用单元测试验证rx java函数中的到达对象

时间:2018-01-20 17:50:57

标签: android unit-testing

在我的视图中我有一个函数,它从演示者调用我的对象,我编写了一个单元测试,它检查该函数中到达对象的类型,但是如何检查到达对象中的项目(MyModel)。

例如,我想检查我对象中的列表是否有2个项目?

模拟视图类中的

final Action1<MyModel> myAction = mock(Action1.class);

@Override
    public Func1<Observable<MyModel>, Subscription> invalidAppWidgetIdWidgetModal() {
        return RxUi.ui(myAction, Schedulers.immediate());
    }
测试方法

verify(mViewMock.myAction()).call(any(MyModel.class));

2 个答案:

答案 0 :(得分:0)

我找到了解决方案,需要使用 ArgumentCaptor

ArgumentCaptor<MyModel> viewModelCapture = ArgumentCaptor.forClass(MyModel.class);
verify(mViewMock. myAction()).call(viewModelCapture.capture());

assertThat(viewModelCapture.getValue().getList‌​Data().size(), is(2));

答案 1 :(得分:-1)

验证(mViewMock.myAction())。call(any(MyModel.class).getListData()。size(),is(2));