2013-01-18 25 views
1

我有一个android应用程序,我的测试人员正在学习如何使用robotium执行测试。 该应用程序有一个实体(对象/ pojo)存储在一个SQLite数据库与ID,描述和一些其他信息。测试Android应用程序 - 如何执行数据库数据的设置?

我们需要一些如何在测试类中进行设置,以便应用程序具有一个具有可用于测试的确定ID,描述等的实体。

对于数据库访问,我们有一个Dao模式实现+ SQLiteOpenHelper的扩展创建和管理数据库的更新,使用Robo Guice注入到Activity类中。到目前为止,我们没有使用ContentProvider(在android测试包中有一个MockContentProvider类),但如果这是我们可能迁移到的最佳解决方案。

设置实现的要求不是将测试代码与应用程序代码混合在一起。有什么建议么?

回答

1

我不确定你的意思是“安装实现的要求不是将测试代码与应用程序代码混合在一起,有什么建议吗?”但即时通讯猜测你的意思是你不想在测试中重用应用程序中的任何代码?

好吧,我恐怕你最好的选择是让你的任一写代码填充数据库,或者让他们运行应用程序,让它进入一个给定的状态然后测试。个人重用你的代码可能是最好的选择,但你必须以正确的方式来构建它,并取决于你试图测试的内容。例如,如果您正在测试数据库中的某些内容得到正确显示,那么重用我们的代码就没问题。如果你正在测试把东西放到数据库中,那么重用你的代码并不好,那么你应该运用应用程序来确保它能够正确地保存到数据库中。

我喜欢看这个的方式是BDD风格,在过去发生的“给定”步骤中的任何事情,您的测试不应该关心它是如何发生的,只是它发生了,所以它是如何发生的状态并不重要,在这些情况下,速度可能是最重要的部分。

相关问题