Android开发和TDD

时间:2018-12-17 10:07:44

标签: java android tdd

有人知道如何通过Android开发进行TDD(测试驱动开发)的良好指南吗?我对您在创建活动测试之前/期间应该拥有的思维方式感兴趣。

我以前只有一次任务需要通过TDD(保龄球比赛)完成。它给了我很多见识,但是Android开发离我正在做的事情还很远。

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

例如,现在有人应该如何对getGroupView和getChildView方法进行测试?

1 个答案:

答案 0 :(得分:1)

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

对于Android,测试驱动的开发与其他任何类型的开发在本质上都是相同的,在这种情况下,您首先编写测试,然后再生成源代码,但是它有一些区别,因为必须模拟某些要测试的系统以防止需要启动模拟器来测试基于交互的应用程序部分。


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

幸运的是,存在许多解决方案可以测试Android的所有这些部分。 link to the article containing the image above包含指向Mockito,Robolectric和Espresso等测试框架的链接,用于不同级别的Android测试。