2

我正在使用 GORM 方法 findAll("query", [params], [pagination]),根据文档: http: //grails.org/doc/latest/ref/Domain%20Classes/findAll.html

它在运行时工作正常,但在集成测试期间不可用。似乎只有findAll('query', [params])findAll('query')方法可用。

更多细节:

询问:

MyDomain.findAll("From MyDomain as domain Where domain.something = :something", [something:aThing], [max:10])

测试设置:

我通过集成测试执行此方法(在test/integration下,并且我的测试类扩展了 GroovyTestCase

环境:我用的是grails 1.3.7,mac osx

堆栈跟踪:

我收到以下错误:没有方法签名:abcdeMyDomain.findAll() 适用于参数类型:(java.lang.String, java.util.LinkedHashMap, java.util.LinkedHashMap) 可能的解决方案:findAll(), findAll( java.lang.Object),findAll(java.lang.Object,java.util.Map),findAll(groovy.lang.Closure)。

重现它:

class MyTestClass extends GroovyTestCase{

void testFindAllFailsWithThreeParameters(){

  Domain.findAll('From Domain as domain where domain.property = :value', [value:value],[max:10])

 }
}

在此先感谢您的帮助,

文森特

4

1 回答 1

0

您是否在测试环境和运行时使用相同的数据源?

如果不是,则该数据源可能不支持您使用的方法,例如再次测试内存数据库与 MySQL 进行生产。

于 2011-07-20T22:06:43.803 回答