Skip to content

Commit 35c4fa1

Browse files
Swallow Errors in TestObserver
If a delegate is not provided then do nothing. Fixes #1571
1 parent f3d2945 commit 35c4fa1

File tree

2 files changed

+26
-1
lines changed

2 files changed

+26
-1
lines changed

src/main/java/rx/observers/TestObserver.java

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,9 @@ public TestObserver(Observer<T> delegate) {
3636
this.delegate = delegate;
3737
}
3838

39+
@SuppressWarnings("unchecked")
3940
public TestObserver() {
40-
this.delegate = Observers.empty();
41+
this.delegate = (Observer<T>) INERT;
4142
}
4243

4344
@Override
@@ -153,4 +154,23 @@ public void assertTerminalEvent() {
153154
}
154155
}
155156

157+
// do nothing ... including swallowing errors
158+
private static Observer<Object> INERT = new Observer<Object>() {
159+
160+
@Override
161+
public void onCompleted() {
162+
163+
}
164+
165+
@Override
166+
public void onError(Throwable e) {
167+
168+
}
169+
170+
@Override
171+
public void onNext(Object t) {
172+
173+
}
174+
175+
};
156176
}

src/test/java/rx/observers/TestObserverTest.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,5 +119,10 @@ public void testWrappingMockWhenUnsubscribeInvolved() {
119119
inOrder.verify(mockObserver, times(1)).onCompleted();
120120
inOrder.verifyNoMoreInteractions();
121121
}
122+
123+
@Test
124+
public void testErrorSwallowed() {
125+
Observable.error(new RuntimeException()).subscribe(new TestObserver<Object>());
126+
}
122127

123128
}

0 commit comments

Comments
 (0)