开发人员-dev的对代码质量的保证方式,进行的代码级别验证或者方法论驱动写出质量能达到要求的代码,非测试人员范围内的测试。java
单元测试 单元测试只测试程序单元自身的功能spring
集成测试 将全部模块按照概要设计要求组装成为子系统或系统,验证组装后功能以及模块间接口是否正确的测试工做框架
tdd:方法论:写代码只为修复失败了的测试,基于单元测试单元测试
atdd:ATDD是一种团队行为及过程,基于集成测试测试
例如:若是须要启动spring容器来进行,已经属于集成测试范围,参考springdoc,spring-test包自己定义为集成测试,单元测试须要mock注入;设计
mock东西太多,因此咱们会启动spring容器来注入;但若是是tdd这种运行速度确定不是咱们能接受的。
方法论接口
有鄙视没有单元测试的代码,有以为没有测试就无法写代码的,但项目里面不少处于中断使用或者干脆没有。缘由各类各样,最后结果是没有作或者中途中止。开发
常见以下:it
没有流程上统一约束,全靠开发自身决定test
没有可度量的方式,没法衡量
进度缘由放弃,意味着价值比例整体仍是体现占比较小
简单业务crud,很明显,没几行业务代码,是否值得测试,大量依赖其余系统的测试又须要不少mock
集成测试调用外部系统没法反复进行,对其余系统形成的脏数据问题
经过测试增长代码质量,这件事自己可能会遇到不少难点,不是搭建一个demo的测试框架就能够解决。测试可能会促进你代码的改变,好比mock太多
提供统一框架,仅可能解决一些常见点,但具体问题仍是一个个解决。ATDD要求总体流程配合,先作单元测试与集成测试的交集点。
简单crud经过测成准备数据解决,复杂逻辑须要单元测试覆盖,再集成测试仅可能覆盖。集成测试一些点能够mock,好比外部调用。
准备结合咱们项目选用测试集成以下:支持动态语言groovy并支持javaspock spring-test H2 junit jersey-test Mockito