我已经开始在grails-datastore-gorm-mongodb中使用新的模拟支持。 当与mongodb保持关系时,我的应用程序默认使用域映射来使用引用。 我需要找到一种方法来使模拟蒙哥做同样的事情。 如何在单元测试中应用相同的默认映射? 在Config.groovy中,它看起 ...
提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供 中文繁体 英文版本 中英对照 版本,有任何建议请联系yoyou2525@163.com。
在Grails 3.x中编写单元测试时,我们必须模拟域。 这是示例代码。
package com.example.service
import grails.test.mixin.Mock
import grails.test.mixin.TestFor
import spock.lang.Ignore
import spock.lang.Specification
@TestFor(SomeService)
@Mock([DomainA, DomainB])
class SomeServiceSpec extends Specification{
...
}
问题是添加新域时,假设DomainC且单元测试依赖于DomainC,则这些单元测试将失败。 然后,我们必须手动添加DomainC。
有没有一种方法可以动态模拟域?
@TestFor(SomeService)
@Mock([dynamically mock all domain objects here])
class SomeServiceSpec extends Specification{
...
}
也许这就是您需要的(来自grails doc )。
或者,您也可以直接将DomainClassUnitTestMixin与TestMixin批注一起使用,然后在测试过程中调用mockDomain方法来模拟域:
@TestFor(BookController)
@TestMixin(DomainClassUnitTestMixin)
class BookControllerSpec extends Specification {
void setupSpec() {
mockDomain(Book)
}
...
域列表也存在mockDomains
域方法,您可以通过标准方式从上下文中检索域。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.