Mockito never () no funciona con andThen rxjava2

Estoy probando un código bastante simple escrito en Kotlin:

o1.updateUser(params) .andThen(o2.reload()) 

Cuando UpdateUser falla, espero que la recarga no se ejecute. Pero cuando se testing con Mockito 2 y jUnit 5 hay una invocación de dicho simulacro.

la burla se hace así:

 given(o1.updateUser(user)).willReturn(Completable.error(IllegalArgumentException()) given(o2.reload()).willReturn(Completable.complete()) 

Ahora el problema es que el código se comporta como se esperaba, lo que significa que en este caso nunca se llama realmente a o2, pero mientras se testing la unidad, Mockito afirma que hubo una invocación de o1.

La afirmación de testing se ve de la siguiente manera:

 verify(o2, never()).reload() 

¿Hice algo mal aquí? ¿Hay alguna forma de evitar esto? ¿Estoy entendiendo al operador de alguna manera incorrectamente?

    Lo que escribiste en la testing es en realidad:

     Completable c2 = o2.reload(); o1.updateUser(params).andThen(c2); 

    Lo que probablemente querías es:

     o1.updateUser(params).andThen(Completable.defer(() -> o2.reload())); 

    De esta forma, solo se llama a o2.reload() si la ejecución de andThen completa normalmente y se suscribe al Completable diferido.