2

我是一个 grails 初学者。并试图理解单元测试..当我创建域类时,Authorgrails 会自动AuthorControllerTests为该域创建一个测试控制器。

所以 。在测试控制器中,第二行是 @Mock(Author)

这是什么意思..当我模拟一个域类时我得到了什么好处?

4

2 回答 2

1

只是为了添加一些东西,当您需要隔离代码的“单元”时,模拟很有用,例如您的控制器。

通过隔离,我们的意思是编写简单的组件来重新编写和模拟所有依赖项。这个简单的组件就是我们所说的 Mocks。

这里的 Grails 使您可以模拟域类,这将使您的测试更容易,因为它不会将信息存储在数据库中。

如果要测试整个堆栈,从控制器到数据库,这就是我们所说的集成测试。

希望能帮助到你

于 2012-07-05T09:43:02.017 回答
1

正如它在有关测试的大量文档中所说:

Mock 注释创建任何协作者的模拟版本。有一个 GORM 的内存实现,它将模拟与 GORM API 的大多数交互。对于那些不会自动模拟的交互,您可以使用内置支持以编程方式定义模拟和存根。

AuthorControllerTests 也是 AuthorController 的测试,而不是 Author 域类。

于 2012-06-30T07:37:50.303 回答