我可以在spock中同时使用“Where”块和辅助方法

时间:2012-02-14 17:35:44

标签: unit-testing groovy spock

我有一个基本上如下的规范:

def "my example specification"(){
given:"some mocked object which depends on a object created in the where clause"
        def display = mockDisplay()

and:"a activityt"
        def activity = new ConfigActivity(display)
when:
        activity.doStuff()
then:
        1 * display.select()

where:
        dependency << new Dependency()
}


private mockDisplay() {
        def display = Mock(ConfigActivity.Display)
        display.addDependency(dependency)
        return display
}

我理解“mockDisplay()”方法超出了“where”子句的范围。然而,由于一些规范往往变得混杂样板代码(不是在这简单的示例中)我真的需要一些方法来重用我的“给定”语句并且这样做我真的想利用Spock“where “条款也是如此。

这可行吗?或者还有另一种解决这个问题的方法吗?

1 个答案:

答案 0 :(得分:1)

从辅助方法访问数据变量没有神奇的方法,但您可以将其作为方法参数传递。