2

我需要为每次测试运行重新创建一个数据库。我正在使用Robotium为我的应用程序自动化测试,因此每个测试都扩展ActivityInstrumentationTestCase2. 我发现我可以RenamingDelegatingContext用来模拟一个新的Context. 但只要我从课堂上扩展ActivityInstrumentationTestCase2我就不能使用setActivityContext()哪个ActivityUnitTestCase。可能是我走错了路。如果有的话,请建议另一种可能的方法来重新创建数据库。非常感谢你。

4

1 回答 1

4

我尝试了一段时间使用 renamingdelegatingcontext 但失败了,因为据我所知,要在 ActivityInstrumentationTestCase2 中使用它,我将不得不模拟我无法执行的应用程序,因为我们的应用程序实际上扩展了应用程序并且在onCreate,它变成了一个可怕的问题。

然后我采取了简单的路线,并在每次运行之间清除了数据库(以及共享首选项和 cookie)

context.deleteDatabase(DATABASE_NAME)

我发现这(令人惊讶地)不会太慢(与通过 GUI 测试任何东西相比)它设置正确,但这很容易做到。

哦,我只是说我曾经把所有这些代码放在一个扩展 ActivityInstrumentationTestCase2 的新测试类中,所以它在设置/拆卸中自动发生。

于 2013-02-28T18:00:35.407 回答