2 回答
TA贡献2021条经验 获得超8个赞
正如 John Camerin 所说,您可能正在寻找spock 中的数据驱动测试。
我会提供一个稍微不同的答案:
def "GetNumberOfMaxHeightCandles"() {
given: "A BirthdayCandles object"
def candles = new BirthdayCandles(testInput)
when: "I call the max number height method"
def actual = candles.getNumberOfMaxHeightCandles()
then: "I should get the frequency count of the max number in the integer array"
actual == expectedResult
where:
testInput | expectedResult
[1,1,1,3,3,3,3] as int [] | 4
[1,1,1,3,3,3,4] as int [] | 1
}
几个观察:
请注意,我没有在这里使用字符串插值(没有“$result”和“$test”)
请注意as int[]where 块中的 。它的替代方案是def candles = new BirthdayCandles(testInput as int [])
TA贡献1816条经验 获得超6个赞
您可以添加一个 where: 块,其中包含一个值表,其中第一行是变量名,可以在测试的其余部分使用。例如
def "GetNumberOfMaxHeightCandles"() {
given: "A BirthdayCandles object"
def candles = new BirthdayCandles("$test")
when: "I call the max number height method"
def result = candles.getNumberOfMaxHeightCandles()
then: "I should get the frequency count of the max number in the integer array"
result == "$result"
where:
test | result
[1,1,1,3,3,3,3] | 4
[1,1,1,3,3,3,4] | 1
}
只需添加行即可添加测试变体。
添加回答
举报