Potrzebuję zarówno Robolectric i Mockito w moim teście, każdy z nich proponuje własny TestRunner, co mam zrobić?Potrzebuję zarówno Robolectric i Mockito w moim teście, każdy z nich proponuje własny TestRunner
mam ten kod:
@RunWith(MockitoJUnitRunner.class)
@EBean
public class LoginPresenterTest {
@Bean
LoginPresenter loginPresenter;
@Mock
private LoginView loginView;
@AfterInject
void initLoginPresenter() {
loginPresenter.setLoginView(loginView);
}
@Test
public void whenUserNameIsEmptyShowErrorOnLoginClicked() throws Exception {
when(loginView.getUserName()).thenReturn("");
when(loginView.getPassword()).thenReturn("asdasd");
loginPresenter.onLoginClicked();
verify(loginView).setEmailFieldErrorMessage();
}
}
Problem polega AndroidAnnotations
nie wstrzykiwać zależności i dostaję NPE podczas próby użycia LoginPresenter
ktoś powiedział mi użyć konstruktora LoginPresenter_
, więc mogę samodzielnie wymusić zależność w ten sposób:
LoginPresenter loginPresenter = LoginPresenter_.getInstance_(context);
Aby uzyskać dostęp do W związku z tym musiałem przełączyć się z testów jednostkowych na testy urządzeń Android i wykonać getInstrumentation().getTargetContext()
, ale chcę mieć testy jednostkowe, a nie oprzyrządowanie.
Tak więc inna osoba powiedziała mi, żebym użył do tego celu Robolectric
- ma ona być w stanie zapewnić mi kontekst Aplikacji.
Jednak, kiedy spojrzał na podręcznej stronie Robolectric
, mówi
@RunWith(RobolectricGradleTestRunner.class)
który będzie kolidować z moim obecnym @RunWith
adnotacji dla Mockito, więc co mam zrobić?