我有一个 grails 2.1 应用程序,它有一个控制器,它调用服务上的方法,传入请求和响应:
class FooController {
def myService
def anAction() {
response.setContentType('text/xml')
myservice.service(request,response)
}
我想对这个方法进行单元测试。我想使用 GMock(版本 0.8.0)这样做,所以这就是我尝试的:
def testAnAction() {
controller.myService = mock() {
service(request,response).returns(true)
}
play {
assertTrue controller.anAction()
}
}
现在这失败了,说它没有达到对请求的期望。
Missing property expectation for 'request' on 'Mock for MyService'
但是,如果我这样编写测试:
def testAnAction() {
def mockService = mock()
mockService.service(request,response).returns(true)
controller.myService = mockService
play {
assertTrue controller.anAction()
}
}
测试会顺利通过的。据我所知,它们都是 GMock 语法的有效用法,那么为什么第一个失败而第二个没有呢?
干杯,