我正在尝试使用ActivityInstrumentationTestCase2为登录活动运行多个测试用例。第一个测试用例测试登录成功,这会导致Activity通过调用startActivity(Intent intent)启动下一个Activity。现在,我正在尝试测试的Activity上有另一个Activity。第一个测试用例通过,第二个测试用例启动。但是当它被第二个测试用例调用时,它将永远挂在getActivity()上。
如果我进入登录Activity的代码并注释掉调用startActivity(Intent intent)的部分,那么两个测试用例都将成功运行。
我已经尝试了一些事情。我使用Intent.FLAG_ACTIVITY_CLEAR_TOP来清除Activity堆栈。在这种情况下,顶部活动被关闭,并且显示登录活动,但是当第二个测试用例启动时它仍然停留在getActivity()。
我也试过sendKeys(KeyEvent.KEYCODE_BACK),但是没有效果。
我能做些什么来克服这个问题?谢谢!
答案 0 :(得分:4)
getInstrumentation().addMonitor(NextActivity.class.getName(), null, true);
诀窍。请注意,最后一个参数是一个标志,指示是否阻止活动启动。将其设置为true可以解决问题。
答案 1 :(得分:0)
就我而言,在每种情况下我都只是关闭活动:
statuses/update/