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

时间:2017-05-29 11:46:34

标签: android testing android-espresso android-testing

我希望在创建活动之前获取对我的活动的引用,以便注入一些模拟。

所以我的活动测试规则如下:

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

我知道ActivityTestRule有一个beforeActivityLaunched回调,但是我无法获得对我的活动的任何引用(在那里为null)。

所以,如果我这样做:

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

我也无法在我的测试类的setUp方法中获得对我的活动的引用。只有当我执行rule.launchActivity()时,活动引用才准备就绪,但是然后执行了Activity,我之前无法传递任何依赖项。我知道我可以使用匕首,但我想在这种情况下避免使用匕首。有没有办法在没有匕首启动之前准备活动依赖项?

1 个答案:

答案 0 :(得分:-1)

如果ActivityTestRule中的第二个参数(launchActivity)为false,则表示您应该自定义每个测试方法的意图

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