【发布时间】:2014-10-11 08:55:53
【问题描述】:
在测试控制器时收到以下错误消息 - 请参阅下面的代码。 我该如何纠正这个? 当我从控制器(运行应用程序)调用服务方法时,它工作正常。
例外:
groovy.lang.MissingMethodException:没有方法签名: grails.test.GrailsMock.isOk() 适用于参数类型: (java.lang.String) 值:[H] at ...VControllerSpec.test 一些东西(VControllerSpec.groovy:)
类:VControllerSpec
import grails.test.mixin.TestFor
import spock.lang.Specification
@TestFor(VController)
@Mock(VService)
class VControllerSpec extends Specification {
void "test something"() {
given:
def vServiceMock = mockFor(VService)
vServiceMock.demand.isOk { String yeah -> return true }
controller.vService = vServiceMock.createMock()
when:
def isO = vServiceMock.isOk("H")
then:
isO == true
}
}
类:VService
import grails.transaction.Transactional
@Transactional
class VService {
def isOk = { String yeah ->
def isO = false
return isO
}
}
谢谢, 史蒂夫
【问题讨论】:
-
你在这里测试什么
vServiceMock.isOk("H")?控制器动作在哪里测试?
标签: unit-testing groovy grails-2.0 spock