使用robotium在testcase之后保持活动

时间:2013-01-31 04:43:14

标签: android junit robotium

Hiii我正在测试一种测试方法,我想在按下一个按钮后我的活动应该存活,以便我可以看到该活动中的下一个测试用例,但不幸的是我的活动在运行测试用例后被杀死了。保持活动活着的方法。如果有代码行,请告诉我。

2 个答案:

答案 0 :(得分:1)

我不能确定没有看到你的代码,但我猜测在testcase,或者setup()和tearDown()方法你必须调用一个方法,如finishOpenedActivities(),它关闭所有的你打开的活动。删除此行将使活动保持打开状态。

已经说过,通常最好的做法是让你的测试用例从一个干净的状态开始,因为拥有依赖于排序的测试用例意味着如果一个失败,所有其他人都会失败,即使该功能确实有用,你还需要做一些为了让他们按照你想要的顺序运行所有的hacky事物。

答案 1 :(得分:1)

我稍微挖掘了一下源代码,发现在ActivityInstrumentationTestCase2中实现的tearDown()方法会在当前活动中调用finish()。因此,即使您没有在执行此方法时明确地完成()Activity,也会在调用super时完成。但是,根据源代码文档:如果你有一个非静态的内部类,那么在tearDown()中删除对super的调用可能会导致内存泄漏,对于你的情况,可能更重要的是,运行的Activity似乎仍然会被杀死一次测试完成。即使你有一个空的tearDown()实现,似乎活动测试在运行结束时完成。截至目前,我不知道如何避免这种情况。

作为基于您对@Paul Harris的回答的评论的替代方案,Robotium有许多方法可以让您等待某些事情发生。您可能希望查看waitForText()waitForView()(可能需要超时作为参数),以便在按钮单击执行某些操作时让Robotium暂停。希望这有帮助!