我有类似的spock测试:
def "test" () {
given:
def mockOutput = new Output()
Service mockService = Mock()
classUnderTest.service = mockService
mockService.method(_, "some string") >> mockOutput
when:
def returnedObject = classUnderTest.run()
then:
1* mockService.method(_, "some string")
}
我正在尝试验证类中服务的方法调用,但它不起作用。
根据我的调试,假设返回mockOutput的存根调用不再有效。
但是,当我断言返回的对象是mockOutput时,我是成功的(具有完全相同的给定和块时):
请注意,返回的服务对象是调用它的类的returnObject。
then:
returnedObject instanceof Output
returnedObject != null
我错过了什么?
答案 0 :(得分:3)
我发现了什么问题。
在尝试验证与存根方法的交互时,您应该在'然后'中包含交互返回值。块
then:
1* mockService.method(_, "some string") >> mockOutput