Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/194.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在移动Android项目上进行测试驱动开发?_Android_Agile - Fatal编程技术网

如何在移动Android项目上进行测试驱动开发?

如何在移动Android项目上进行测试驱动开发?,android,agile,Android,Agile,TDD需要自动化测试,所以我想听听其他人如何在Android项目中应用TDD?什么对您的团队有效/无效?您是如何实现可视化测试的自动化的?我可以看到服务层和模型的TDD,但TDD和活动、布局的可视更改等如何?monkey工具,也称为UI/Application Exerciser monkey,在识别UI错误和错误方面非常有用。在android应用程序发布之前,最好在apk上运行它 它的工作原理 Monkey是一个命令行工具,可以在任何模拟器实例或设备上运行。它将用户事件的伪随机流发送到系统中,

TDD需要自动化测试,所以我想听听其他人如何在Android项目中应用TDD?什么对您的团队有效/无效?您是如何实现可视化测试的自动化的?我可以看到服务层和模型的TDD,但TDD和活动、布局的可视更改等如何?

monkey工具,也称为UI/Application Exerciser monkey,在识别UI错误和错误方面非常有用。在android应用程序发布之前,最好在apk上运行它

它的工作原理

Monkey是一个命令行工具,可以在任何模拟器实例或设备上运行。它将用户事件的伪随机流发送到系统中,作为对正在开发的应用程序软件的压力测试。要控制它,您有一个选项列表

这些选项使您可以控制:

  • 基本配置:事件数
  • 限制:对包的限制
  • 事件类型和频率
  • 调试选项
  • 这是运行猴子的通用命令:

    adb shell monkey [options] 
    
    //example
    adb shell monkey -p your.package.name -v 500
    
    更多信息请参见Officel android开发者网站

    Android应用程序单元测试的最佳实践:

    adb shell monkey [options] 
    
    //example
    adb shell monkey -p your.package.name -v 500
    
    在ApiDemos示例应用程序中,可以找到ActivityUnitTestCase和ActivityInstrumentationTestCase类

    这些是用于测试android程序的实用程序类

    以下是参考资料的链接: 和

    android.jar包含用于普通旧单元测试的JUnit测试框架的子集。看看ApiDemos示例,了解如何编写和运行它


    您还可以尝试并查看SDK文档中的微调器/微调器测试示例应用程序,以及记事本示例应用程序的测试项目。还有一个你好,测试教程

    使用ActivityInstrumentationTestCase2,而不是ActivityInstrumentationTestCase

    ActivityUnitTestCase的值有限。它运行在一个与真正的Android系统不太相似的测试工具中。AndroidInstrumentationTestCase2为您提供了更多可供使用的功能

    android.test中的所有测试用例类都基于Junit3,而不是Junit4。您可以在Junit3在线上找到大量文档

    测试用例类模仿“单元测试”。在Android中,对于某些组件(如Activity),使用Junit3进行真正的单元测试是不可能的,因为单独使用反射无法正确实例化组件类。ActivityInstrumentationTestCase2等类通过一些“魔法”克服了这一问题。我认为它们是与Junit3的测试用例非常相似的单元测试类。它们被称为“功能测试”,因为单元测试不应该有外部依赖,而Android活动(例如)需要Android系统。我认为这是吹毛求疵,但不管怎样

    步骤:首先在POJO(普通的Ol'J---Objects)中定义尽可能多的对象。在单元测试中测试它们。测试它们与功能测试框架(如Robotium)的交互。对任何非Android对象使用模拟

    然后,使用Android.test.mock中的存根Android对象和您自己的存根来测试Android对象。最后,当其他一切都设置好后,使用Android测试用例来测试“框架”


    Mock Android对象不容易实现,这就是为什么Android.test和Android.test.Mock中的“Mock”实际上是存根

    为android应用TDD,将对您非常有帮助。在进行TDD之前,您需要应用好的体系结构模式,比如MVP、MVVP。因此,您将能够从活动和片段中提取更多的代码。对于活动、布局的可视更改等,您可以在代码实验室中检查点。在这里,他们使用浓缩咖啡进行活动和可视布局测试的TDD。我试过了,它对我很有帮助

    奖励:检查它是否是一种产品(使用寿命超过2年),是否值得进行TDD。一个小应用,生命周期3个月,做TDD太贵了。