我有以下可觀察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在我的測試中,仍然沒有骰子 –