我需要为每次测试运行重新创建一个数据库。我正在使用Robotium
为我的应用程序自动化测试,因此每个测试都扩展ActivityInstrumentationTestCase2
. 我发现我可以RenamingDelegatingContext
用来模拟一个新的Context
. 但只要我从课堂上扩展ActivityInstrumentationTestCase2
我就不能使用setActivityContext()
哪个ActivityUnitTestCase
。可能是我走错了路。如果有的话,请建议另一种可能的方法来重新创建数据库。非常感谢你。
问问题
911 次
1 回答
4
我尝试了一段时间使用 renamingdelegatingcontext 但失败了,因为据我所知,要在 ActivityInstrumentationTestCase2 中使用它,我将不得不模拟我无法执行的应用程序,因为我们的应用程序实际上扩展了应用程序并且在onCreate,它变成了一个可怕的问题。
然后我采取了简单的路线,并在每次运行之间清除了数据库(以及共享首选项和 cookie)
context.deleteDatabase(DATABASE_NAME)
我发现这(令人惊讶地)不会太慢(与通过 GUI 测试任何东西相比)它设置正确,但这很容易做到。
哦,我只是说我曾经把所有这些代码放在一个扩展 ActivityInstrumentationTestCase2 的新测试类中,所以它在设置/拆卸中自动发生。
于 2013-02-28T18:00:35.407 回答