Ich habe einen HystrixObservableCommand, Ich mag würde mit Mockito verspotten:Mocking HystrixObservableCommand Ergebnisse in Echt .toObservable() aufgerufen zu werden
public class LoginWithEmailCommand extends HystrixObservableCommand<Boolean> {
// stuff...
}
Mit einem Test, der wie folgt aussieht:
@RunWith(MockitoJUnitRunner.class)
public class ExampleTest {
@Mock
Observable<Result> mockObs;
@Test
public void mockwtf() {
LoginWithEmailCommand cmd = mock(LoginWithEmailCommand.class);
when(cmd.toObservable()).thenReturn(mockObs);
cmd.toObservable();
}
}
Allerdings laufen diese Testergebnisse in einem Nullpointer:
java.lang.NullPointerException bei com.netflix.hystrix.AbstractCommand.toObservable (AbstractCommand.java:342) bei com.netflix.hystrix.HystrixObservableCommand.toObservable (HystrixObservableCommand.java:35)
Warum hält die wirkliche .toObservable() angerufen werden? einen Haltepunkt Einstellung zeigt, dass das LoginWithEmailCommand Objekt ist ein generiertes, Objekt proxied erstellt werden ...
Noch ein Hinweis:
@Override
public Observable<Boolean> toObservable() {
return super.toObservable();
}
... gibt es: Wenn ich diese Überschreibung in die ObservableCommand, verspotten Werke hinzufügen ein sauberer Weg, um dies zu tun, als inObservable Überschreibungen unbenutzt zu machen?
Siehe auch: https://github.com/mockito/mockito/issues/398 –