如何在仪器测试中模拟活动依赖性



我想在创建活动之前先获得对我的活动的引用,以注入一些模拟。

所以我有我的活动测试规则:

   ActivityTestRule mActivityRule = new ActivityTestRule<MainActivity>(MainActivity,class, true, false)

我知道ActivityTestrule有一个弹性的回调,但是在那里我无法提及我的活动(那里是无效的(。

所以如果我这样做:

@Rule
public ActivityTestRule<MainActivity> mActivityTestRule = new ActivityTestRule(
        MainActivity.class) {
    @Override
    protected void beforeActivityLaunched() {
        super.beforeActivityLaunched();
        MainActivity act = (MainActivity)getActivity();
         //Here act is null

我也无法在测试类的设置方法中参考我的活动。活动参考只有在我执行规则时才准备就绪。launchActivity((,但随后执行活动,并且我以前无法通过任何依赖项。我知道我可以为此使用dagger,但是我想在这种情况下避免使用dagger。在启动之前,有什么方法可以在没有dagger的情况下准备活动依赖性?

如果第二个参数(启动率(在ActivityTestrule中为False,则意味着您应该自定义每个测试方法的意图

@Test
public void dummyTest() {
  mActivityRule.launchActivity(new Intent());
 // code here
}

最新更新