Ravinder Singh
Jul 27, 2017 · 1 min read

Hi Fabio, very nice article

i am having trouble in creating a unit test case for activity onCreate Method.please find below my Activity and Activity Test code.

Main Activity

@Inject
protected IMainPresenter mPresenter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
( (MyApplication)getApplication()).getAppComponent().inject(this);
mPresenter.setContext(this);
mPresenter.sayhello();

}

@Inject
public MainActivity(IMainPresenter mainPresenter)
{
mPresenter=mainPresenter;
}

Test Main Activity

public class MainActivityTest {
@Rule
public DaggerMockRule<AppComponent> rule = new DaggerMockRule<>(AppComponent.class,
new MainModule())
.set(new DaggerMockRule.ComponentSetter<AppComponent>() {
@Override public void setComponent(AppComponent component) {
mMainActivity = component.provideMainActivity();
}
});
MainActivity mMainActivity;

@Mock
protected IMainPresenter mIMainPresenter;

@Mock
protected Bundle mBundle;
@Test
public void testonCreate() throws Exception {
mMainActivity.onCreate(mBundle);
Mockito.verify(mIMainPresenter,Mockito.times(1)).sayhello();

}

}

but its giving me runtime error . any pointers on what is going wrong here

    Ravinder Singh

    Written by