[英]Apply default mapping to mock Mongo domains in Grails unit test
我已经开始在grails-datastore-gorm-mongodb中使用新的模拟支持。 当与mongodb保持关系时,我的应用程序默认使用域映射来使用引用。 我需要找到一种方法来使模拟蒙哥做同样的事情。 如何在单元测试中应用相同的默认映射?
在Config.groovy中,它看起来像这样:
// configure mongo to use dbrefs:
grails.mongo.default.mapping = {
'*'(reference: true)
}
这是我当前使用的代码示例:
import spock.lang.*
import grails.test.mixin.mongodb.MongoDbTestMixin
import com.github.fakemongo.Fongo
@Mixin([MongoDbTestMixin])
class MySpec extends Specification {
def setup() {
mongoDomain(new Fongo("test").mongo, [ MyDomain ])
new MyDomain(name: 'domain').save(validate: false, flush: true)
}
}
如何将该配置应用于此测试代码?
我正在使用Grails 2.3.9和mongodb 3.0.1插件。
看起来MongoDbTestMixin
提供了mongoDomain
方法的几种风格:
mongoDomain(Mongo mongo, Collection<Class> persistentClasses)
-为给定的Mongo实例和域类为MongoDB域设置GORM mongoDomain(Map config, Collection<Class> persistentClasses)
-为给定的配置和域类为MongoDB域设置GORM 第二个选项允许传递一个配置映射,该映射允许将mongo配置为使用dbrefs(否则,将使用空配置,请参见MongoDbDataStoreSpringInitializer )。 但是,此方法不允许您传递Fongo实例。
您可以尝试:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.