- 🍈单元测试聚焦一个类、集成测试着眼一个模块、功能测试涵盖整个系统
- 🍉单元/集成/功能测试需区分进行不同处理
- 🍊根据测试金字塔,单元测试占
70%,集成测试占20%、功能测试占10% - 🍋
Spock支持集成和功能测试 - 🍌如果类有
ContextConfiguration注解标注,那么将自动支持Spring - 🍍
Spring支持的Spock测试将集成其原有特性(如事务) - 🥭最佳实践是为测试提供不同环境,如内存数据库
- 🍎
Groovy SQL可以代替现有Java数据库访问库 - 🌽
Spock原生支持Guice,且支持Arquillian扩展 - 🍆
Spock可以使用Java REST客户端测试REST服务 - 🍅使用
Groovy REST客户端代替Java客户端 - 🍓
Stepwise注解可以保持方法执行顺序 - 🍒
Stepwise标注的类,失败方法之后的不会执行,可以以此来节省时间 - 🍑
Geb使用WebDriver/Selenium进行web测试,并提供类JQuery语法 - 🍐
Spock和Geb结合进行web功能测试 - 🍏
Geb测试需继承GebSpec - 🍖
Geb可以直接访问浏览器内容,点击按钮以及模仿其它交互 - 🍗构建过程中应区分单元/集成/功能测试,因为不同测试耗时不同
- 🥩可以使用
Maven failsafe和Tomcat插件运行Spock功能测试 - 🍠运行
JUint和Spock混合测试无需任何配置 - 🥟使用
JaCoCo生产代码覆盖率报告 - 🥠
Spock兼容SonarQube代码质量检测,且开箱即用
