首页 > 解决方案 > Android 开发和 TDD

问题描述

有谁知道如何使用 Android 开发进行 TDD(测试驱动开发)的好指南?我对您在创建活动测试之前/期间应该拥有的心态感兴趣。

我之前只有一项任务必须通过 TDD(保龄球游戏)完成。它给了我洞察力,但 Android 开发与我所做的相去甚远。

我开始做一个新的 SearchActivity,我将使用抽象 BaseExpandedListAdapter 类作为我的自定义适配器类 ExpandableProfileListAdapterTest。

现在,例如,某人应该如何测试 getGroupView 和 getChildView 方法?

标签: javaandroidtdd

解决方案


Android 官方文档对于为 Android 代码生成测试非常有用:https ://developer.android.com/training/testing/fundamentals

测试驱动开发对于 Android 与任何其他类型的开发基本相同,您首先编写测试并生成源代码,但它有一些不同之处,因为必须模拟某些要测试的系统以防止需要触发建立一个模拟器来测试应用程序的基于交互的部分。


Android 中的测试由测试的“金字塔”组成,包括单元测试、集成测试和 UI 测试。这些是分开的,因为即使您可以编写一个 UI 方法来简单地在屏幕上放置一个简单到可以进行单元测试的按钮,但如果您想断言该按钮已放置,则它无法成功进行单元测试,因为它必须在 Android 模拟器上运行(因此是 UI 测试)。要成功地在单元测试和集成测试之间建立清晰的界限,请确保始终将可测试的功能代码重构并移动到它们自己的方法中,而不是将其包含在其他基于 UI 的方法中(例如应用程序的 onCreate) .

幸运的是,有很多解决方案可以测试 Android 的所有这些部分。这个指向包含上图的文章的链接包含测试框架的链接,例如 Mockito、Robolectric 和 Espresso,用于不同级别的 Android 测试。


推荐阅读