@Test public void testWithCompletionCausingError() { NbpTestSubscriber<Try<Optional<Integer>>> ts = new NbpTestSubscriber<>(); final RuntimeException ex = new RuntimeException("boo"); NbpObservable.<Integer>empty() .materialize() .doOnNext( new Consumer<Object>() { @Override public void accept(Object t) { throw ex; } }) .subscribe(ts); ts.assertError(ex); ts.assertNoValues(); ts.assertTerminated(); }