在android中测试Intent

fer*_*hur 2 android integration-testing android-intent android-testing

我有一个Android应用程序.当用户点击按钮A并且意图像这个android-presudocode一样被触发:)

//inside FirstActivity
@Override
public void onClick(View view) {
    startActivity(new Intent(this, AnotherActivity.class));
}
Run Code Online (Sandbox Code Playgroud)

所以,如果我没有弄错的话,应该调用onResume方法AnotherActivity,对吗?

ActivityInstrumentationTestCase2<FirstActivity>用来测试我的活动,但我无法实例化AnotherActivity.

所以问题是,我该如何测试:'当按下按钮时,恢复正确的活动并将正确的额外内容传递给意图'.

ale*_*ull 8

您可以使用检测来创建ActivityMonitor.这将监视是否已启动新活动.

ActivityMonitor am = getInstrumentation().addMonitor(Activity3.class.getName(), null, true;
Run Code Online (Sandbox Code Playgroud)

然后你想使用button.performClick()来"按下按钮".最后,检查活动监视器是否已被命中.

am.waitForActivitywithTimeout(timeout);
assertEquals(1, am.getHits());
Run Code Online (Sandbox Code Playgroud)

我在很长一段时间内没有使用过ActivityInstrumentationTestCase2所以我不保证这些步骤是完全正确的.无论如何,我建议你看一下Robolectric:一个很棒的Android单元测试框架,它将改变你的生活.它将帮助您克服许多难以或无法使用任何默认仪器测试进行测试的情况.