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