unit-testing - 如何使用脚手架模板 Test.groovy 为 Controller 生成单元测试?

标签 unit-testing testing grails controller scaffolding

如果我使用命令“create-controller”生成 Controller ,Grails 会生成 Controller 和单元测试(使用模板/src/templates/scaffolding/Test.groovy)。

更改模板的一些位后,我现在想重新生成单元测试,但 Grails 不会生成它们。我试过:

  • "create-unit-test" 但这将使用模板/src/templates/testing/UnitTest.groovy 和 “create-integration-test” 将使用模板/src/templates/testing/Generic.groovy

那么如何使用 Test.groovy 模板为 Controller 生成单元测试呢?

最佳答案

在创建工件或使用脚手架时,Grails 使用模板来创建域类、 Controller 、 View 等。默认模板是 Grails 分发的一部分,用于开箱即用的行为,但可以根据项目的特定需求进行自定义。

将代码生成期间 Grails 使用的模板复制到您的项目目录:

$ grails install-templates

src/templates/
├── artifacts
│   ├── Tests.groovy
│   ├── ...
├── scaffolding
│   ├── Test.groovy
│   ├── ...
└── war
    └── web.xml

artifacts 目录包含 create-* 命令使用的模板。
脚手架目录包含 generate-* 命令使用的模板。
war 目录包含用于生成部署描述符的 web.xml 模板。

所以你需要编辑:

  • src/templates/artifacts/Tests.groovy 文件,当执行 grails create-unit-testgrails create-integration-test 命令。

  • src/templates/scaffolding/Test.groovy 当执行 grails generate-allgrails 生成 Controller 命令。

在您的情况下,重新生成您的 Controller 测试并仅覆盖您的测试文件:

$ grails generate-controller com.arturoherrero.Post
| Generating controller for domain class com.arturoherrero.Post
> File /grails-app/controllers/com/arturoherrero/PostController.groovy already exists. Overwrite?[y,n,a] n
> File /test/unit/com/arturoherrero/PostControllerTests.groovy already exists. Overwrite?[y,n,a] y
| Finished generation for domain class com.arturoherrero.Post

关于unit-testing - 如何使用脚手架模板 Test.groovy 为 Controller 生成单元测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13345534/

相关文章:

java - 忽略基于 Spring Boot 配置文件的测试类

c++ - 如何为依赖操作系统的类编写测试

security - Grails 如何处理安全性,我为什么要使用插件?

javascript - 用 proxyquire 模拟 MongoDB

unit-testing - Angular 2 RC4 : Unit test component that has dependency injection a service that has its own

unit-testing - 既然我已经将所有单元测试迁移到 MSpec,我还需要 NUnit 吗?

testing - Protractor "restartBrowserBetweenTests: true"重新启动浏览器,但在此之后不要运行测试

grails - 从Grails中的数据库渲染数据时出错

grails - Acegi、Grails、JBoss、SSL 从 http<>https 来回

android - 在 test 和 androidTest 之间共享测试类