如何在spock测试中使用`then`块

时间:2017-02-15 22:26:41

标签: testing spock

我是spock的新手并且已经完成了文档,但仍然不完全了解如何使用then部分。如果我想比较then块中的两个字符串?

setup:
def String1 = "books"
def String2 =  new File('/path/to/file').text

when: 
String1 = String1.toLowerCase()
String2 = String2.toLowerCase()

then:
if (String1 == String2) {
    print "file contains the word" + String1
}

当两个字符串相等但当前它通过时,我需要测试失败。

1 个答案:

答案 0 :(得分:2)

可能你想要这样做:

setup:
def string1 = "books"
def string2 = new File('/path/to/file').text

when:
string1 = string1.toLowerCase()
string2 = string2.toLowerCase()

then:
string1 != string2

但你要检查,这两个对象不等于。因此,在when块中,您必须检查equals方法。所以你的测试应该是这样的:

setup:
def string1 = "books".toLowerCase()
def string2 = new File('/path/to/file').text.toLowerCase()

when:
boolean notEquals = string1 != string2

then:
notEquals

或更短:

setup:
def string1 = "books".toLowerCase()
def string2 = new File('/path/to/file').text.toLowerCase()

expect:
string1 != string2