我无法使用espresso意图来测试使用意图启动的活动。执行流程按以下方式工作
创建意图并启动新活动的代码如下所示:
@Override
protected void onPostExecute(String result) {
Intent intent = new Intent(context, NewActivity.class);
intent.putExtra(key, result);
context.startActivity(intent);
}
当我运行应用程序时,这一切都有效。至于使用espresso进行测试,测试代码如下所示:
...
@Rule
public IntentsTestRule<MainActivity> mIntentTestRule =
new IntentsTestRule<>(MainActivity.class, false);
@Test
public void testMainActivityAsyncTask() {
// Find view with button
onView(withText(R.string.button_text)).perform(click());
// Ensure correct intent setup
intended(allOf(
hasComponent(NewActivity.class.getName()),
hasExtraWithKey(key),
toPackage("com.example.espresso")));
// Ensure appropriate activity and view is launched
onView(
allOf(withId(R.id.expected_view),
withText(isEmptyOrNullString())));
// Let it go
Intents.release();
}
当我运行测试时,测试失败并出现这些错误(为简洁起见):
...想要匹配1个意图。实际上匹配0意图。
匹配意图:[]
记录的意图: -Intent {cmp = com.example.doingstuff / com.example.espresso.NewActivity(has extras)}处理包:[[com.example.doingstuff]],extras:[Bundle [{akey = aVal]])
这里有几个问题: 1.为什么错误消息中的cmp值前面是我的MainActivity类的包名称,即&#34; com.example.doingstuff /&#34;这可能是我问题的一部分 2.上面的错误消息是否表明它发现了一个意图,即&#34; com.example.doingstuff / com.example.espresso.NewActivity&#34;但它与我的预期不符?
我在没有帮助的情况下做了很多谷歌搜索。非常感谢任何帮助。