eduveraneio / awesome-unit-tests

Repositório piloto com exemplos práticos de Testes de Unidade.
5 stars 0 forks source link

RxJava: assertTestObserver() #6

Open eduveraneio opened 3 years ago

eduveraneio commented 3 years ago

Contexto:

A classe TestObserverTest.java é responsável por TestObserver.java. Nesta classe, temos o método assertTestObserver() que testa o ciclo de vida de um observable, composto por métodos que são executados quando ocorre algum evento, quando os eventos são concluídos e quando ocorre algum erro. O teste desse método é o seguinte:

Código: TestObserverTest.java

@Test
  public void assertTestObserver() {
    Flowable<Integer> oi = Flowable.fromIterable(Arrays.asList(1, 2));
    TestSubscriber<Integer> subscriber = new TestSubscriber<>();
    oi.subscribe(subscriber);

    subscriber.assertValues(1, 2);
    subscriber.assertValueCount(2);
    subscriber.assertComplete().assertNoErrors();
  } 

Explicação:

No ínicio, cria-se uma variável oi do tipo Flowable, na qual um Observable está emitindo alguma quantidade de dados: um vetor de inteiros com os elementos 1 e 2. Em seguida, cria uma instância de TestSubscriber, atribui à variável subscriber e a invoca em oi. Posteriormente, testa se os valores 1 e 2 estão presentes em subscriber através da função assertValues(), que retornará verdadeiro. Depois, testa se este objeto contém exatamente dois elementos, sendo esta afirmação verdade. Por fim, verifica se o evento foi concluído sem a presença de erros, o que também é verdadeiro.