【问题标题】:grails create-controller junit tests rather than spockgrails create-controller junit 测试而不是 spock
【发布时间】:2015-03-02 19:09:38
【问题描述】:

我正在阅读一些关于 Grails 2 的书籍,并且都在他们的单元测试中使用了 junit,但我注意到当我运行 create-controller 时,自动生成的单元测试是基于 spock 的。 是否可以让脚本箱 junit 测试代替?我注意到 create-controller 的唯一选项是控制器的名称。

【问题讨论】:

    标签: grails junit spock


    【解决方案1】:

    您可以通过生成模板来自定义所有生成的工件:

    grails install-templates
    

    然后您将在以下位置找到用于为控制器生成测试的模板:

    src/templates/testing/Controller.groovy
    

    然后您可以删除所有其他您不想采用的文件(在src/templates 下)

    如果您需要“旧”的灵感,请查看source

    如果您还想像以前那样对文件进行命名,您还必须重新构建createUnitTest 脚本。在您的scripts/_Events.groovy 文件中创建/添加:

    eventDefaultStart = {
        createUnitTest = { Map args = [:] ->
            def superClass = args["superClass"] ?: "GrailsUnitTestCase"
            createArtifact(
            name: args["name"],
            suffix: "${args['suffix']}Tests",
            type: args.testType ?: args['suffix'],
            path: "test/unit",
            superClass: superClass,
            templatePath:"templates/testing",
            skipPackagePrompt: args['skipPackagePrompt'])
        }
    }
    

    如你所见,有一个 var templatePath,如果你打算大量使用它,你可以调整它(把你的模板放在你的 ~ 例如)

    【讨论】:

    • 我宁愿只在阅读那本书并开始采用 Spock 时处理这种麻烦。它使编写测试变得更加 [Gg]roovy。
    • 我认为你可能是对的 - 最好坚持使用 Spock,尽管还有一件事要学习。但非常感谢您的完整回答。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-01
    • 1970-01-01
    • 2021-06-11
    • 1970-01-01
    • 2014-06-21
    相关资源
    最近更新 更多