如果我使用命令“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-test
或grails create-integration-test
命令。src/templates/scaffolding/Test.groovy
当执行grails generate-all
或grails 生成 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/