Android MVP - 查看单元测试 - 设置演示者

时间:2018-03-19 13:18:05

标签: android unit-testing mockito android-mvp

我想为我的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的模拟方法是不可能的。我的问题是 - 我需要改变什么来使其可测试?

1 个答案:

答案 0 :(得分:0)

使用Robolectric:

    activity = Robolectric
            .buildActivity(MainActivity::class.java)
            .create().get()

并在您的MainActivity中使用依赖注入提供演示者。

编辑:

如果您不想更改代码,也可以使用MainPresenter的存根构造函数:

PowerMockito.whenNew(MainPresenter.class).withArguments(YOUR_ARGUMENTS).thenReturn(MOCKED_PRESENTER);