【发布时间】:2011-08-13 06:16:30
【问题描述】:
我正在尝试为我的 Grails 应用程序中的服务编写一些单元测试。服务“MyService”使用位于 $APP-ROOT/src/groovy/ 中的名为“MyHelperClass”的类。
在 MyService 的单元测试中,我尝试为 MyHelperClass 创建一个模拟,如下所示:
def myHelperClassMock = mockFor(MyHelperClass)
def myService = new MyService()
myService.myHelperClass = myHelperClassMock.createMock()
这给出了错误:
Error casting map to com.mycompany.myproject.MyHelperClass, Reason: Could not find matching constructor for: com.mycompany.myproject.MyHelperClass()
org.codehaus.groovy.runtime.typehandling.GroovyCastException: Error casting map to com.mycompany.myproject.MyHelperClass, Reason: Could not find matching constructor for: com.mycompany.myproject.MyHelperClass()
at grails.test.GrailsMock.createMock(GrailsMock.groovy:91)
at grails.test.GrailsMock$createMock.call(Unknown Source)
at com.mycompany.myproject.MyServiceTests.testSomething(MyServiceTests.groovy:17)
这似乎只发生在 src/ 中的类中,例如,对于 grails-app/services 中的类似乎工作正常。知道如何让它查看 src/ 中的类吗?
谢谢!
【问题讨论】:
标签: unit-testing grails groovy mocking