为什么需要自动化测试
再接受一份前人六i下来的代码的时候,一份具有完善的自动化测试的代码,改完了跑一下自动化测试。代码维护成本低,bug会越来越少
- 代码写完了
- 怎么保证他是对的
- 怎么保证他会永远对辖区
- 长久看来,没有测试的代码质量是无法保证的
Java中的测试形态
TestNg
Junit
Junit4
Junit5
测试的基本形态
- 再依赖中引入测试框架
- Maven
- 放在/src/test下的都是测试代码
- 再test阶段会被执行
- mvn test -Dest=TestCi*le
- mvn verify (-Dskip Tests)
- Gradle
- 当使用java插件的时候,自动创建名为test的Test的任务
- ./gradlew test —tests ‘TestClass.testMethod’
- 再Idea中可以直接运行
测试的过程中发生了啥?
- 当我们启动Spring容器时 => 跑在一个jvm里
- 当我们运行mvn命令时 => 跑在一个jvm里
- 运行测试时
- 一个新的jvm会被创建
- 隔离测试的环境
- 避免互相干扰
jacoco测试覆盖率
jacoco是如何工作的
- java agent
- java instrumentation
- 生成测试覆盖率报告
- 将报告与源码相结合