【发布时间】:2012-06-30 06:57:49
【问题描述】:
我是 Grails 初学者。并试图理解单元测试..
当我创建域类Author 时,grails 会自动为该域创建一个测试控制器AuthorControllerTests。
所以。在测试控制器中,第二行是 @Mock(Author)
这是什么意思..当我模拟一个域类时我得到了什么好处?
【问题讨论】:
标签: grails groovy grails-2.0
我是 Grails 初学者。并试图理解单元测试..
当我创建域类Author 时,grails 会自动为该域创建一个测试控制器AuthorControllerTests。
所以。在测试控制器中,第二行是 @Mock(Author)
这是什么意思..当我模拟一个域类时我得到了什么好处?
【问题讨论】:
标签: grails groovy grails-2.0
正如extensive documentation on testing 中所说:
Mock 注释创建任何协作者的模拟版本。有一个 GORM 的内存实现,它将模拟与 GORM API 的大多数交互。对于那些不会自动模拟的交互,您可以使用内置支持以编程方式定义模拟和存根。
AuthorControllerTests 也是 AuthorController 的测试,而不是 Author 域类。
【讨论】:
只是为了添加一些东西,当您需要隔离代码的“单元”时,模拟很有用,例如您的控制器。
通过隔离,我们的意思是编写简单的组件来重装和模拟所有依赖项。这个简单的组件就是我们所说的 Mocks。
Grails 在这里为您提供了模拟域类的可能性,这将使您的测试更容易,因为它不会将信息存储在数据库中。
如果你想测试整个堆栈,从控制器到数据库,这就是我们所说的集成测试。
希望对你有帮助
【讨论】: