首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Grails单元测试中将默认映射应用于模拟Mongo域

在Grails单元测试中将默认映射应用于模拟Mongo域
EN

Stack Overflow用户
提问于 2014-06-21 03:20:52
回答 1查看 508关注 0票数 0

我已经开始使用grails-datastore-gorm-mongodb中的新模拟支持。我的应用默认使用域映射,在将关系持久化到mongodb时使用引用。我需要找到一种方法让被嘲笑的mongo做同样的事情。如何在单元测试中应用相同的默认映射?

在Config.groovy中,它看起来像这样:

代码语言:javascript
复制
// configure mongo to use dbrefs:
grails.mongo.default.mapping = { 
  '*'(reference: true)
}

下面是我目前使用的代码示例:

代码语言:javascript
复制
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插件。

EN

回答 1

Stack Overflow用户

发布于 2014-06-23 17:07:23

看起来MongoDbTestMixin提供了几种风格的mongoDomain方法:

  1. mongoDomain(Mongo mongo, Collection<Class> persistentClasses) -为给定的MongoDB实例和域classes
  2. mongoDomain(Map config, Collection<Class> persistentClasses)设置MongoDB域的GORM -为给定的配置和域类

设置MongoDB域的GORM

第二个选项允许传递一个配置映射,该映射允许将mongo配置为使用dbrefs (否则将使用空配置,请参阅MongoDbDataStoreSpringInitializer )。但是,此方法不允许传递Fongo实例。

您可以尝试:

  1. 要求Grails团队添加一种结合了这两种选择的方法(拉出request?)
  2. Extend MongoDbTestMixin或创建您自己的mixin
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24334269

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档