所以我正在使用Robotium来自动化测试,我遇到了一些问题。 Robotium能够“sendkey(keyevent.keycode_back)”,所以我可以从一个视图返回到前一个但现在还有另一个(android本机)活动打开当我点击“忘记密码”(超链接),我会需要android本身模拟后退按钮点击。有办法吗?
至于我正在处理的代码:
@FlakyTest(tolerance = 2)
public void testperformMsgListItemandItemSelectTestAfterStartInLandscape_ShouldSucceed() throws Exception{
try {
mSolo.clickOnText("Forgotten Password?");
assertFalse(mSolo.getCurrentActivity().hasWindowFocus());
mSolo.sendKey(KeyEvent.KEYCODE_HOME);
assertTrue(mSolo.getCurrentActivity().hasWindowFocus());
mSolo.clickOnText("Register Now!");
assertFalse(mSolo.getCurrentActivity().hasWindowFocus());
} catch (AssertionError err) {
mSolo.fail(getName(), err);
throw err;
}
}
答案 0 :(得分:1)
创建KeyEvent
并发送它。
例如:
KeyEvent kdown = new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_BACK);
Activity.dispatchKeyEvent(kdown);
另一种方法是在您的活动中调用finish()
。处理当前活动并将您带回到之前的活动,这正是Android操作系统在您单击后退按钮时所执行的操作。
答案 1 :(得分:1)
如果当前活动属于您正在测试的应用,请使用
mSolo.goBack();
如果当前活动属于另一个应用程序,Robotium无法执行任何操作,因此要编写有用的测试,您无法让测试启动其他应用。
答案 2 :(得分:0)
if> = API LEVEL5:
super.onBackPressed()
否则
KeyEvent kdown = new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_BACK);
Activity.dispatchKeyEvent(kdown);