Android测试驱动开发

Muh*_*hab 44 tdd android frameworks unit-testing mocking

我在制作Android应用程序方面有丰富的经验.对于我的新项目,我们决定进行测试驱动开发(TDD).我一直在使用Robotium进行用户场景测试,它工作正常,看起来也很简单.

对于单元测试,我尝试使用(MockContext Android Class)模拟Context,但我无法这样做.我浏览了这个博客http://sites.google.com/site/androiddevtesting/并通过这个http://sdudzin.blogspot.com/2011/01/easy-unit-testing-for-android.html,这表明Android应用程序中的模拟仍然非常有限且很难,并建议使用PowerMock,jMockit,JeasyTest或Roboelectric(与Mockito和Maven结合使用)甚至是RoboGuice.

我想得到你们的任何建议,你认为哪个单元测试框架最适合测试Android应用程序.(特别是测试Android类,可能会提供模拟上下文和其他模拟功能,以便我可以使我的测试用例尽可能独立).任何建议或指示都会有所帮助.谢谢

Pau*_*her 30

对于设备外测试,请查看Robolectric

对于设备上测试,请查看Borachio

一句话:做起来仍然非常非常困难.事情正在改善(今天的情况比6个月前要好得多)但Android是我编写过的最具考验性的环境.

  • Borachito已被弃用.[Mockito现在有Android支持](http://www.paulbutcher.com/2012/05/mockito-on-android-step-by-step/) (3认同)
  • @Paul Butcher,你还没有为Blackberry编写程序.如果你有,你会说Android在测试方面要好几百万倍!:-) (2认同)

Nim*_*a G 17

要在Android中执行TDD,我个人使用以下所有内容:

另外:使用依赖注入库(如DaggerRoboguice)将大大简化您的单元/集成测试.要在多个设备上运行测试,请考虑使用Spoon.

  • 在我看来,我们不应该将Robotium - 仪器测试作为TDD的一部分.TDD的核心规则之一是测试应该在几秒钟内提供反馈.<br/>我同意Robotium/Espresso等测试也很重要,但不可能在TDD Red-Green-Refactor工艺中使用它. (5认同)