阅读http://spockframework.github.io/spock/docs/1.0/data_driven_testing.html,似乎数据表是一种方便,可读的结构测试输入方式。我想以类似的方式构建我的测试输出。
我有一个测试方法,它返回Iterable<Entry<String, String>>
。我有以下Spock测试用例,但有些东西告诉我有一种方法可以让Spock为我做更多这样的事情。这基本上只是Java代码,所以我怀疑有一种更加时髦的方式。这可以简化吗?
def "iterate" () {
given:
Iterator expected =
['one' : 'a',
'two' : 'b',
'three' : 'c',
'four' : 'd',
'five' : 'e',
'six' : 'f'].entrySet().iterator()
when:
Iterable<Entry<String, String>> actual = testClass.method()
then:
for (def entry : actual) {
assert entry == expected.next()
}
}
答案 0 :(得分:0)
这个测试的结果是不可预测的,因为没有定义迭代顺序over set(参见here),当在代码中比较两个集合的元素时,它几乎会失败。
以下是它的外观:
def "iterate" () {
given:
Iterator expected =
['one' : 'a',
'two' : 'b',
'three' : 'c',
'four' : 'd',
'five' : 'e',
'six' : 'f'].entrySet()
when:
Iterable<Entry<String, String>> actual = testClass.method()
then:
expected == actual as Set
}