我有以下可观察Robolectric测试没有要求textWatcher.onTextChanged
Observable<OnTextChangeEvent> subjectObservable = WidgetObservable.text(mComposeSubject);
然后做
subjectObservable.subscribe(s -> onTextChange(mComposeSubject, getString(R.string.blank_warning, mComposeSubject.getHint().toString())));
我也有以下Robolectric测试
@Test
public void testOnTextChange_subjectChanged() {
EmailActivity activity = spy(getActivity());
activity.mComposeSubject.setText("test");
assertThat(activity.mSubjectSubscription).isNotNull();
verify(activity, times(1)).onTextChange(eq(activity.mComposeSubject), anyString());
}
这将失败,通缉但未引发错误。有没有人有任何见解,为什么这会是?据我所知,这使用一个简单的文本观察器,所以它应该只是工作?
我不是RxJava大专家。在哪个线程订阅? –
应该是主线程。我在一个活动的初始化中创建了这个。除非这样的观测只是发生剥离和自己做异步?我知道这肯定会引起robolectric的问题。 –
,以确保我使用.observeOn(AndroidSchedulers.mainThread()),并确保ShadowLoopers.runUIThreadTasks在我的测试中,仍然没有骰子 –