Wednesday, 15 July 2015

unit testing - findAll not supported in this implementation of GORM -



unit testing - findAll not supported in this implementation of GORM -

i'm trying test method in service maintain getting error that

string-based queries [findall] not supported in implementation of gorm. utilize criteria instead.

my service:

class myservice { list<color> colorshade (string shade) { def shadeid = shade.findbyname(shade).id homecoming colorshade.get(shadeid) } }

my class joins shade , color domains

class colorshade extends serializable { color color shade shade static colorshade create (color color, shade shade, boolean flush = false) { if (get(shade.id) == null) new colornetwork(color: color, shade: shade).save(flush: flush) } static colorshade (long shadeid) { colorshade.findall 'from colorshade shade.id = :shadeid', [shadeid: shadeid] } static mapping = { table 'color_shade' version false id composite: ['color', 'shade'] } }

my spec: test\unit\myservicespec.groovy i've tried adding test\integration\myservicespec.groovy

@testfor(myservicespec) @mock([color, shade, colornetwork]) @testmixin(domainclassunittestmixin) class myservicespec extends specification { def shade def color def setup(){ color = new color(name: "red") shade = new shade(name: "dark") color.save(flush: true) shade.save(flush: true) colorshade.create(color, shade) /* i've tried: mockdomain(colorshade, [[color: color, shade: shade]]) same error */ } def cleanup () { } def "test colorshade" () { expect: 1 == service.colorshade("dark").size() } }

when run test error:

string-based queries [findall] not supported in implementation of gorm. utilize criteria instead.

question

how can test ? on grails 2.2.4

note: sample test scenario i've created purpose of question. actual tests different in them have same problem question.

if using version 4.3.5.4 or later of hibernate4 plugin can utilize grails.test.mixin.hibernate.hibernatetestmixin, supports total hibernate gorm in unit test environment. need add together dependency in grails-app/conf/buildconfig.groovy.

dependencies { test "org.grails:grails-datastore-test-support:1.0-grails-2.4" }

then annotate test grails.test.mixin.hibernate.hibernatetestmixin annotation.

unit-testing grails spock

No comments:

Post a Comment