Thursday, 15 May 2014

mongodb - Apply default mapping to mock Mongo domains in Grails unit test -



mongodb - Apply default mapping to mock Mongo domains in Grails unit test -

i've started using new mocking back upwards in grails-datastore-gorm-mongodb. app defaults domain mappings utilize references when persisting relationships mongodb. need find way mocked mongo same thing. how apply same default mapping in unit test?

in config.groovy, looks this:

// configure mongo utilize dbrefs: grails.mongo.default.mapping = { '*'(reference: true) }

here's sample of code use:

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) } }

how apply config test code?

i'm using grails 2.3.9 , mongodb 3.0.1 plugin.

looks mongodbtestmixin offers few flavors of mongodomain method:

mongodomain(mongo mongo, collection<class> persistentclasses) - sets gorm mongodb domain given mongo instance , domain classes mongodomain(map config, collection<class> persistentclasses) - sets gorm mongodb domain given configuration , domain classes

the 2nd alternative allows pass configuration map allows configure mongo utilize dbrefs (otherwise empty configuration used, see mongodbdatastorespringinitializer ). method not allow pass fongo instance.

can seek to:

ask grails team add together method combines both options (pull request?) extend mongodbtestmixin or create own mixin

mongodb unit-testing grails groovy gorm

No comments:

Post a Comment