RxJava Unit тестирования композитный одноразовый - PullRequest
0 голосов
/ 08 января 2019

Я делаю мгновенный поиск с использованием 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();



    }
}

Любой совет, как мне написать хороший модульный тест для этого.

...