精通 Grails: 测试 Grails 应用程序
对比单元测试和集成测试
如我前面所述,Grails 支持两种基本类型的测试:单元测试和集成测试。这两者之间没有语法区别 — 它们都是用相同的断言写的 GroovyTestCase。它们的区别在于语义。单元测试孤立地测试类,而集成测试在一个完整的运行环境中测试类。
坦白地说,如果您想将所有的 Grails 测试都编写成集成测试,则刚好符合我的想法。所有 Grails create-* 命令都生成相应的集成测试,所以很多人都使用现成的集成测试。正如稍后看到的一样,很多测试需要在完整的运行环境中进行,因此默认使用集成测试是很好的选择。
如果您想测试一些非核心 Grails 类,则适合使用单元测试。要创建一个单元测试,请输入 grails create-unit-test MyTestUnit。因为测试脚本不是在不同的包中创建的,所以单元测试和集成测试的名称应该是惟一的。如果不是这样的话,将会收到清单 7 所示的错误消息:
清单 7. 单元测试和集成测试同名时收到的错误消息
The sources
/src/trip-planner2/test/integration/HotelStayTests.groovy and
/src/trip-planner2/test/unit/HotelStayTests.groovy are
containing both a class of the name HotelStayTests.
@ line 3, column 1.
class HotelStayTests extends GroovyTestCase {
^
1 error
/src/trip-planner2/test/integration/HotelStayTests.groovy and
/src/trip-planner2/test/unit/HotelStayTests.groovy are
containing both a class of the name HotelStayTests.
@ line 3, column 1.
class HotelStayTests extends GroovyTestCase {
^
1 error
因为集成测试默认使用后缀 Tests,所以我在所有单元测试上都使用后缀 UnitTests,避免混淆。
0
相关文章