美文网首页软件自动化测试TDD(测试驱动开发)
《Java测试驱动开发》读书笔记01-TDD工具链

《Java测试驱动开发》读书笔记01-TDD工具链

作者: antony已经被占用 | 来源:发表于2018-08-14 22:06 被阅读6次

    本书简介

    英文名称:Test-Driven Java Development
    作者: Viktor Farcic Alex Garcia
    译者: 袁国忠
    由人民邮电出版社2017年9月出版,笔者购买的是第一次印刷版本。
    笔者最近在公司内部推广开发测试(developer test),也一直想了解TDD与单元测试的异同,以及在TDD下的开发模式与非TDD的差异。看到此书提供了较为丰富的TDD案例,因此,购买了此书。


    test-driven jd.jpg

    第二章 工具、框架和环境

    在第二章中,作者对开发测试的工具链进行了介绍,并就其中某些工具进行了比较。整理如下:

    1 代码管理:Git

    事实上的代码配置管理标准工具。后端可以是gitlab/github。这个在书中没有展开。

    2 虚拟机:Vagrant + Docker

    通过这个方案可以在windows下使用docker

    3 构建工具 gradle

    Gradle作为后来者,样板代码更少,配置文件更简短。集中了maven+Ant的优势,既有Maven的生命周期,以及与Maven依赖库的无缝集成,又可以和ant一样提供强大的功能。
    当然在笔者所服务的公司,目前还是以Maven为主。在C#项目中则使用msbuild,而在C++项目中使用Make。

    IDE

    这个作为程序员吃饭的家伙,JAVA条线当然首推IntelliJ IDEA。文中推荐了社区版。

    单元测试框架

    作者在这里提出了一个重要的问题: 测试(用例)是什么?如何定义(一个测试用例) ?
    笔者也认为,开发一个测试框架,其首要的任务也是回答上述问题。
    在测试框架的选择上,JAVA条线的双子星座就是Junit和TestNG。
    TestNG在用例组织等功能上毫无疑问是领先的,不过JUnit依旧是GitHUB/Maven Central等平台上的测试框架类的头牌。

    断言

    Hamcrest vs AssertJ
    第一眼看到Hamcrest丰富的Matcher, 就摒弃了Junit自带的Assert。而在看到了AssertJunit漂亮流畅的Fluent Assert后,就从此推荐使用AssertJ作为断言工具了。

    代码覆盖率工具

    Jacoco vs Cobetura
    Cobetrua还在更新! 并且由于出道较早,devops工具链上的集成较好。如笔者在C++项目中使用gcov做覆盖率统计时,就可以通过gcovr来生成cobetura格式的报告,这样就可以实现覆盖率统计结果的统一解析。
    当然Jacoco更为易用,目前公司内部的Java项目中也主要以Jacoco作为覆盖率统计工具。
    主要的坑来自于Jacoco与Powermock的Instrument冲突。目前只能通过offline-instument来解决,执行起来比较麻烦。

    Mock框架

    Mockito + Powermock, 简直就是神雕配侠侣。 关于这两者的具体使用,读者可以参考笔者发表的文集。

    UI测试与BDD

    感兴趣的读者可以参考笔者参与编著的《精通自动化测试框架设计》
    关于BDD, 就JBehave/Cucumber而言,如果哪家公司可以由此工具支撑起10K以上的用例,请务必告之。感谢!

    相关文章

      网友评论

        本文标题:《Java测试驱动开发》读书笔记01-TDD工具链

        本文链接:https://www.haomeiwen.com/subject/tjdbbftx.html