我有一个基本上看起来像这样的规范:
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 " 子句也是如此。
这是可行的吗?还是有其他方法可以解决这个问题?