我正在编写Robotium测试以捕获现有的错误,其中操作栏主页按钮退出应用程序而不是弹出当前片段。不幸的是,当我期待它失败时,我的测试正在通过。
我希望下面测试中的最后waitForFragmentByTag
行能够检测到活动已完成而不是显示特定片段。
我确信clickOnActionBarHomeButton
正在完成活动,而不是弹出片段。
public void testBackToLandingPage() {
Activity activity = getActivity();
Intent intent = new Intent(activity, activity.getClass());
activity.startActivity(intent);
assertTrue(solo.waitForFragmentByTag("landingfragment"));
solo.clickOnButton("Create Account");
assertTrue(solo.waitForFragmentByTag("createaccountfragment"));
// Check the hardware back button takes you back to the landing page
solo.goBack();
assertTrue(solo.waitForFragmentByTag("landingfragment"));
solo.clickOnButton("Create Account");
assertTrue(solo.waitForFragmentByTag("createaccountfragment"));
// Check the action bar back/up button takes you back to the landing page
solo.clickOnActionBarHomeButton();
assertTrue(solo.waitForFragmentByTag("landingfragment"));
}
我到目前为止找到的最佳选择是在clickOnActionBarHomeButton
之后添加此检查:
assertFalse(solo.getCurrentActivity().isFinishing());
似乎我可能需要一个自定义的waitForFragmentByTag方法,它总是执行两个断言,否则我可能会错过我的活动意外结束的情况。
Robotium是否已经有方法来涵盖这种情况?我重新发明了轮子吗?
我正在使用Robotium 5.0.1并在OS 4.4.2模拟器上进行测试。
答案 0 :(得分:2)
我遇到了同样的问题。看起来这是一个在robotium 5.2.1中修复的错误,但我找不到任何相关的文档。我找到了一个相关的错误(https://code.google.com/p/robotium/issues/detail?id=589)虽然在5.2.1中修复了。