我想为我的MainActivity
编写单元测试。活动有MainPresenter
。演示者有一个方法A()
,需要在onCreate()
Activity
内调用
以下是代码:
public class MainActivity implements MainContract.View {
private MainPresenter presenter;
@Override
protected void onCreate(final Bundle savedInstanceState) {
...
presenter = new MainPresenter(this);
...
presenter.A();
}
}
现在,我想创建一个模拟MainPresenter
的单元测试,然后检查是否调用了方法A()
。目前,我认为测试是否调用了Presenter的模拟方法是不可能的。我的问题是 - 我需要改变什么来使其可测试?
答案 0 :(得分:0)
使用Robolectric:
activity = Robolectric
.buildActivity(MainActivity::class.java)
.create().get()
并在您的MainActivity中使用依赖注入提供演示者。
编辑:
如果您不想更改代码,也可以使用MainPresenter的存根构造函数:
PowerMockito.whenNew(MainPresenter.class).withArguments(YOUR_ARGUMENTS).thenReturn(MOCKED_PRESENTER);