• Chapter 0: 基本概念

    Chapter 0: 基本概念

    在了解学习本项目提供的例子之前,先了解一下什么是单元测试(Unit Testing,简称UT)和集成测试(Integration Testing,简称IT)。

    如果你之前没有深究过这两个概念,那么你可能会得出如下错误的答案:

    错误答案1:

    单元测试就是对一个方法进行测试的测试

    听上去很像那么回事儿,对吧?单元测试,就是测一个逻辑单元,所以就测一个方法就是单元测试,听上去很有道理是不是?但是,那么测试两个方法(这两个方法互相关联)的话叫什么呢?

    错误答案2:

    集成测试是把几个方法或者几个类放在一起测试

    既然前面单元测试只测一个方法,那么几个方法放在一起测就是集成测试,听上去挺有道理的。那么是不是只要测一个以上的方法就是集成测试呢?

    错误答案3:

    集成测试就是和其他系统联合调试做的测试

    听上去有点像SOA或者现在流行的微服务是吧。做这种测试的时候必须得各个开发团队紧密配合,一个不小心就会测试失败,然后就是各种返工,总之难度和火箭发射有的一拼。

    那么正确答案是什么?其实这两个概念的解释比较冗长这里就不细讲了,只需记住UT和IT具备以下特征:

    1. UT和IT必须是自动化的。
    2. UT只专注于整个系统里的某一小部分,粒度没有规定,一般都比较小可以到方法级别。比如某个字符串串接方法。
    3. UT不需要连接外部系统,在内存里跑跑就行了。
    4. IT需要连接外部系统,比如连接数据库做CRUD测试。
    5. 测试环境和生产环境是隔离的。
    6. 能做UT的就不要做IT。

    参考链接:

    • Martin Fowler - Unit Test
    • Wikipedia - Unit Testing
    • Wikipedia - Integration Testing