假设我正在测试一堆servlet,我想确保其中一些(不是全部)设置正确的标头。我可以这样做:
then:
1 * response.setHeader('Cache-Control', 'public, max-age=' + 3600)
1 * response.setHeader('X-Foo', 'bar')
如何将它们放在方法中(在超类或实用程序中),所以我可以这样做:
then:
verifyCorrectHeader()
答案 0 :(得分:1)
根据Spock Documentation,您可以使用显式交互块:
def 'the test'() {
when:
//...
then:
interaction verifyCorrectHeader
}
def verifyCorrectHeader = {
1 * response.setHeader('Cache-Control', 'public, max-age=' + 3600)
1 * response.setHeader('X-Foo', 'bar')
}
public void interaction(Closure block): 将一个或多个交互定义包含在then块中......
有关详细说明和更多示例,请参阅MockingApi.interaction(Closure block)文档。