Я делаю мгновенный поиск с использованием RxJava, код выглядит следующим образом:
private CompositeDisposable disposable = new CompositeDisposable();
disposable.add(RxTextView.textChangeEvents(searchView)
.skipInitialValue()
.debounce(300, TimeUnit.MILLISECONDS)
.distinctUntilChanged()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribeWith(searchShoppers()));
private DisposableObserver<TextViewTextChangeEvent> searchShoppers()
{
return new DisposableObserver<TextViewTextChangeEvent>()
{
@Override
public void onNext(TextViewTextChangeEvent textViewTextChangeEvent)
{
Log.d(TAG, "Search query : " + textViewTextChangeEvent.text()); shopperAdapterFilterablePort.getFilter().filter(textViewTextChangeEvent.text());
}
}
@Override
public void onError(Throwable e)
{
Log.e(TAG, "onError: " + e.getMessage());
}
@Override
public void onComplete()
{
}
};
}
Я пытаюсь выполнить модульное тестирование этого куска кода с помощью Mockito. Кривая обучения довольно крутая, и мне удалось продвинуться так далеко:
public class InstantSearchTest
{
// Step 1
// Test string
// Step 2
// Mock a disposable
// Step 3
// Mock disposable observer
// Step 4
// Step 5
// Step 6
@Test
public void setUpElements()
{
String testString = "test";
TestScheduler testScheduler = new TestScheduler();
}
}
Любой совет, как мне написать хороший модульный тест для этого.