验证spock中的交互不起作用

时间:2014-05-26 09:39:36

标签: groovy spock

我有类似的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

我错过了什么?

1 个答案:

答案 0 :(得分:3)

我发现了什么问题。

在尝试验证与存根方法的交互时,您应该在'然后'中包含交互返回值。块

then:
    1* mockService.method(_, "some string") >> mockOutput