在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
}
这将使模拟能够注入(inject)到协作类中。
另请:http://docs.grails.org/3.2.4/guide/testing.html
在“doWithSpring和doWithConfig回调方法,FreshRuntime批注”部分下。
在Grails 3.3.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)
}
}
关于unit-testing - 使用doWithSpring注入(inject)模拟,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49172980/