1

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

4

2 回答 2

1

我深入研究了源代码,发现tearDown()在 ActivityInstrumentationTestCase2 中实现的方法将对您当前的活动进行调用finish()。因此,即使您在实现此方法时没有显式地完成()您的 Activity,它也会在调用super. 但是,根据源代码文档:如果您有一个非静态内部类,则在 tearDown() 中删除对 super 的调用可能会导致内存泄漏,而且,对于您的情况,也许更重要的是,正在运行的 Activity 似乎仍然被杀死一次测试完成。即使您有一个空的 tearDown() 实现,似乎被测活动在运行结束时完成。截至目前,我不知道有什么方法可以避免这种情况。

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

于 2013-01-31T15:26:59.443 回答
1

如果没有看到您的代码,我无法确定,但我猜要么在测试用例中,要么在 setup() 和 tearDown() 方法中,您将不得不调用诸如 finishOpenedActivities() 之类的方法,该方法会关闭您拥有的所有活动打开。删除此行将使活动保持打开状态。

话虽如此,让您的测试用例从一个干净的状态开始通常是最佳实践,因为拥有依赖于排序的测试用例意味着如果一个失败,所有其他的都会失败,即使该功能确实有效,而且您必须在为了让它们都按照你想要的顺序运行。

于 2013-01-31T07:44:31.413 回答