我在调用的单元测试的服务方法中有一个查询lock true
,但是每次我使用 in 运行单元测试时lock true
,单元测试都会失败并给出以下错误。
groovy.lang.MissingMethodException: No signature of method: com.myapp.foo.MyService.lock() is applicable for argument types: (java.lang.Boolean) values: [true]
Possible solutions: each(groovy.lang.Closure), wait(), grep(), find(), dump(), any()
at com.myapp.foo.MyService.createShipment_closure22_closure79(MyService.groovy:1282)
at com.myapp.foo.MyService.createShipment_closure22_closure79(MyService.groovy)
at groovy.lang.Closure.call(Closure.java:411)
at groovy.lang.Closure.call(Closure.java:405)
at grails.gorm.CriteriaBuilder.invokeClosureNode(CriteriaBuilder.java:1093)
at grails.gorm.CriteriaBuilder.get(CriteriaBuilder.java:257)
at com.myapp.foo.MyService.createShipment_closure22(MyService.groovy:1277)
at groovy.lang.Closure.call(Closure.java:411)
at groovy.lang.Closure.call(Closure.java:427)
at com.myapp.foo.MyService.createShipment(MyService.groovy:1274)
at com.myapp.foo.MyServiceSpec.test create shipment: success(MyServiceSpec.groovy:124)
我的查询看起来像这样,并且我从之前的类似查询中知道它在现实世界的场景中有效。
def shipmentInstance = Shipment.createCriteria().get {
maxResults(1)
eq("trackingNumber", shipment.trackingNumber.toString())
lock true
}
使用 Grails 2.3.11。我已经在文档中确认您可以lock true
在createCriteria()
.