1

我有一个 android 应用程序,我的测试人员正在学习如何使用 robotsium 实现测试。该应用程序有一个实体(对象/pojo)存储在 sqlite 数据库中,其中包含 id、描述和一些其他信息。

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

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

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

4

1 回答 1

1

我不确定您所说的“设置实现的要求是不要将测试代码与应用程序代码混合。有什么建议吗?” 但我猜你的意思是你不想在测试中重用应用程序中的任何代码???

好吧,恐怕您最好的选择是让您编写代码来填充数据库,或者让他们运行应用程序以使其进入给定状态然后进行测试。亲自重用您的代码可能是最好的选择,但您必须以正确的方式构建它,并且取决于您要测试的内容。例如,如果您正在测试数据库中的某些内容是否正确显示,那么重用我们的代码就可以了。如果您正在测试将内容放入数据库是否有效,那么重用您的代码并不好,那么您应该运行应用程序以确保它正确保存到数据库中。

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

于 2013-02-07T07:23:48.123 回答