• 🍈单元测试聚焦一个类、集成测试着眼一个模块、功能测试涵盖整个系统
    • 🍉单元/集成/功能测试需区分进行不同处理
    • 🍊根据测试金字塔,单元测试占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语法
    • 🍐SpockGeb结合进行web功能测试
    • 🍏Geb测试需继承GebSpec
    • 🍖Geb可以直接访问浏览器内容,点击按钮以及模仿其它交互
    • 🍗构建过程中应区分单元/集成/功能测试,因为不同测试耗时不同
    • 🥩可以使用Maven failsafeTomcat插件运行Spock功能测试
    • 🍠运行JUintSpock混合测试无需任何配置
    • 🥟使用JaCoCo生产代码覆盖率报告
    • 🥠Spock兼容SonarQube代码质量检测,且开箱即用