### Question:
MainPresenter implements BasePresenter<MainView> { public void obtenerAlumnos() { mSubscripciones.add(mUseCase.getListaAlumnos() .subscribeOn(mSubscribeOnScheduler) .observeOn(mObserveOnScheduler) .subscribe(alumnos -> mView.mostrarListaAlumnos(alumnos), throwable -> mView.errorObtiendoAlumnos())); } MainPresenter(MainView mainView, AlumnosUseCase alumnosUseCase,
            Scheduler subscribeOnScheduler, Scheduler observeOnScheduler,
            CompositeDisposable subscripciones); @Override void onViewAttach(MainView view); @Override void onViewDetach(); @Override void onDestroy(); @Override MainView getView(); void agregarAlumno(); void actualizarAlumno(Alumno alumno); void obtenerAlumnos();  }### Answer:
@Test public void obtenerAlumnosError() throws Exception { when(mAlumnosUseCase.getListaAlumnos()).thenReturn( Single.error(new Throwable("Error al obtener los alummos"))); mMainPresenter.obtenerAlumnos(); verify(mAlumnosUseCase, times(1)).getListaAlumnos(); verify(mMainView, times(1)).errorObtiendoAlumnos(); verify(mMainView, never()).mostrarListaAlumnos(any()); }
@Test public void obtenerAlumnosExito() throws Exception { List<Alumno> alumnos = Collections.singletonList(new Alumno("1", "1", "1")); when(mAlumnosUseCase.getListaAlumnos()).thenReturn(Single.just(alumnos)); mMainPresenter.obtenerAlumnos(); verify(mAlumnosUseCase, times(1)).getListaAlumnos(); verify(mMainView, times(1)).mostrarListaAlumnos(alumnos); verify(mMainView, never()).errorObtiendoAlumnos(); }