当Spock规范中的测试方法使用相同的数据时,是否有一种快捷方式不必在每个方法中重复相同的where块?

实际上,这相当于具有规格级别的where而不是每个“功能”一个。

例如,请参见下面每种测试方法(“功能”)中重复where块的方式:

ReindeerSpec extends Specification {

    List<Reindeer> reindeers() {
        [makeReindeerOneWay('donner'), makeReindeerSomeOtherWay('blitzen')]
    }

    def 'some test'(Reindeer reindeer) {

        expect:
        // some thing about this reindeer

        where:
        reindeer << reindeers()

    }

    def 'some other test'(Reindeer reindeer) {

        expect:
        // some other thing about this reindeer

        where:
        reindeer << reindeers()

    }

}

最佳答案

不,没有这样的方法。使用数据驱动测试的方法的末尾必须存在where块。

10-08 16:54