【问题标题】:How to mock withCriteria in grails 2.2.4 unit testing?如何在 grails 2.2.4 单元测试中模拟 withCriteria?
【发布时间】:2013-09-20 11:04:37
【问题描述】:

下面给出的语句在 grails 1.3.7 中运行良好,但在 2.2.4 中失败。 模拟没有被调用。

YourDomainClass.metaClass.static.findFooBar = { -> [a,b,c]}

给出这个异常

|  groovy.lang.MissingMethodException: No signature of method: 
        YourDomainClass.withCriteria() is applicable for argument types: () values: []

有什么解决办法吗?

【问题讨论】:

    标签: unit-testing grails groovy grails-orm


    【解决方案1】:

    您是否已将单元测试切换到新的 API?在 grails 1.3 中,您将在测试用例中使用 ...UnitTestCase 超类,在 grails 2.x 中,单元测试机制发生了变化,现在您应该在测试用例类上使用 @TestFor(YourDomainClass)@Mock(YourDomainClass) 并且没有继承

    【讨论】:

    • 不确定这是否能解决问题,但我将 YourDomainClass.metaClass.static.findFooBar = {critera -> [a,b,c]} 更改为 YourDomainClass.metaClass.static.findFooBar = {Closure cls -> [a,b,c]} .......... 不知道是什么原因,但异常提示可能的解决方案:withCriteria(groovy.lang.Closure), withCriteria(java.util. Map, groovy.lang.Closure), createCriteria()
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-11-25
    • 2015-01-11
    • 2014-06-23
    • 1970-01-01
    • 1970-01-01
    • 2020-07-22
    • 1970-01-01
    相关资源
    最近更新 更多