在我的应用程序中,我使用SQLCipher加密我的数据库。起初,我忘了将icudt46l.zip添加到我的应用程序资产文件夹中,但出现异常提示net.sqlcipher.database.SQLiteException: not an error
这很容易修复,因为我只需要将文件复制到资产文件夹即可。现在我的应用程序即将完成,我需要编写一些自动化测试。首先,我认为JUnit测试将是一个不错的选择。因此,我首先创建了一个简单的ActivityUnitTestCase。不幸的是,每次我开始测试时,我都会net.sqlcipher.database.SQLiteException: not an error
再次通过。
我希望你能告诉我我在做什么错。我也将icudt46l.zip也复制到我的测试项目资产文件夹中,但这一次它没有解决。
今天发生了一些我无法理解也无法解释的事情。我刚刚从所有设备/仿真器中删除了该应用程序,然后重新安装了它。完成此步骤后,我可以运行Android JUnit测试,而不会出现错误。我不知道发生了什么变化,但现在效果很好。
正如Nick Parker所说,普通的JUnit测试将直接在JVM中运行,但在Android上,JUnit测试则有些不同。他们需要设备或仿真器才能运行。这就是为什么我不能在我的JUnit测试中使用Robolectric但现在可以正常使用Android JUnit测试的原因。
目前,我在POJO的TestCases,用于测试活动布局的ActivityUnitTestCases和用于功能测试的ActivityInstrumentationTestCase2之间混合使用。我也使用Robotium进行功能测试。
再说一次,我没有任何解释为什么它现在可以工作,但是要真实地说:只要它能工作,我就不在乎。所以..如果有人有同样的奇怪行为,我只能建议在运行测试之前删除该应用程序并重新安装。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句