我已经开始在grails-datastore-gorm-mongodb中使用新的模拟支持。我的应用程序默认域映射在将关系持久保存到mongodb时使用引用。我需要找到一种方法让嘲笑的mongo做同样的事情。如何在单元测试中应用相同的默认映射?
在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插件。
答案 0 :(得分:0)
看起来MongoDbTestMixin
提供了一些mongoDomain
方法:
mongoDomain(Mongo mongo, Collection<Class> persistentClasses)
- 为给定的Mongo实例和域类设置MongoDB域的GORM mongoDomain(Map config, Collection<Class> persistentClasses)
- 为给定的配置和域类设置MongoDB域的GORM 第二个选项允许传递配置映射,允许配置mongo以使用dbrefs(否则使用空配置,请参阅MongoDbDataStoreSpringInitializer)。但是,此方法不允许您传递Fongo实例。
您可以尝试: