I use Otto's EventBus in my Android app.
In my LoginNetworkOperation
class, I catch different kinds of network connection errors and I post different bus events for each one, and my LoginPresenter
class is registered as a listener and certain methods are invoked, when these events are fired.
My question is how (and should I) do I unit test whether the LoginNetworkOperation
throws this event and LoginPresenter
handles it with Mockito
?
I looked at this question: Guava EventBus unit tests but it doesn't provide enough information, especially on the implementation part.
public class LoginNetworkOperation {
public void execute(String username, String password) {
try {
// retrofit attempt
} catch (Exception e) {
bus.post(new ExceptionEvent(e));
}
}
}
public class LoginPresenter {
void onExceptionEvent(ExceptionEvent exceptionEvent) {
// Do Something with the exception event
}
}
Also, which should be the Subject Under Test
here and which should be the mocked object?
I am using JUnit + Mockito + Robolectric in Android Studio and my test artifact is Unit Tests