在Grails 3.2.x及更早版本中,我可以在spock单元测试中做这样的事情:
def myServiceMock = Mock(MyService) {
someMethod() >> 42
}
Closure doWithSpring() {{ ->
myService(InstanceFactoryBean, myServiceMock, MyService)
}}
def "some test"(){
expect:
service.myService.someMethod() == 42
}
这将使模拟能够在协作类中注入。
请参阅:http://docs.grails.org/3.2.4/guide/testing.html 在“doWithSpring和doWithConfig回调方法,FreshRuntime注释”部分下。
在Grails 3.3.2中它似乎不再起作用了。 并且从测试文档中删除了它的提及。
有没有办法再次完成这种行为?
非常感谢提前!
/布赖恩
答案 0 :(得分:2)
Grails 3.3附带了新的测试框架。
您可以在这里找到文档 - https://testing.grails.org/latest/guide/index.html
对grails 3.3进行测试。你可以用这种方式修改你的代码:
def myServiceMock = Mock(MyService) {
someMethod() >> 42
}
def setup() {
defineBeans{
myService(InstanceFactoryBean, myServiceMock, MyService)
}
}