我正在按照文档使用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])

测试设置:

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

环境:
我正在使用Grails 1.3.7,Mac OSX

堆栈跟踪:

我收到以下错误:
没有方法签名:a.b.c.d.e.MyDomain.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])

 }
}

在此先感谢您的帮助,

文森特

最佳答案

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

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

关于grails - 集成测试中不存在findAll(String,Map,Map)方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6763864/

10-12 12:51