Grails烘焙测试

时间:2011-01-25 07:10:11

标签: java unit-testing grails groovy seam

我读了文章说

  

测试支持烘焙:测试是   中国的优先考虑和一等公民   Grails的。 Grails促进测试;和   提供实用程序来进行测试   更容易 - 从低级单元测试到   高级功能测试。在   另外,Grails没有结婚   特定的测试框架。您可以   使用JUnit,Spock,EasyB,Geb,   Selenium,Canoo等任何测试   框架可以使用   Grails(通过编写一个挂钩的插件   使用Grails测试测试框架   基础设施)。

这是否意味着我可以像任何其他Java EE框架一样测试Grails?这段文字什么都不说(比如Grails与jUnit集成)或Grails测试有什么特别之处吗?

修改

与SeamT​​est相比如何?

2 个答案:

答案 0 :(得分:5)

我想说Grails支持通过已经包含单元和集成测试文件夹的文件夹结构进行测试,其命令可以帮助进行测试编写。例如,当您创建域类或控制器时,它会自动为您创建测试存根。它还具有运行所有测试,仅运行单元/集成测试或运行单个测试的命令 - 这些命令会自动在测试文件夹中为您创建报告。

您还可以找到许多支持测试的插件 - 有一个很好的功能测试插件,它使用HtmlUnit来测试实际请求。还有一个Selenium插件。

我对Grails的整体体验非常积极,我强烈建议将其作为一个框架。

我希望这会有所帮助。

答案 1 :(得分:4)

正如马修指出的那样,测试基础设施都已建立。定义了目录布局,可以通过grails脚本运行测试。

总的来说,Grails和SeamT​​est的测试环境并没有那么不同。他们都有单元测试sans数据库,以及具有整个堆栈的集成测试。差异主要是java与groovy的性质。

就像SeamT​​est在TestNG上提供一个层一样,grails在JUnit上有一个层,它提供类似的支持。 grails.test.GrailsUnitTestCasegroovy.util.GroovyTestCase是了解他们如何比较的良好起点。

在我看来,Grails真正脱颖而出的是其嘲弄的支持。它使用groovy来提供非常灵活的模拟。特别是,您可以直接在类和对象上使用模拟版本动态覆盖方法,因此不需要创建模拟类。该框架提供了模拟整个ORM层的快捷方式,允许您轻松测试更高级别的组件,而无需数据库的开销。

看看manual's chapter on testing的一些具体例子。