2017-02-15 98 views
0

then`塊我是新來的斯波克和通過的文件已經走了,但還是不完全瞭解如何使用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 
} 

當兩個字符串相等但當前通過測試時,我需要測試失敗。

+0

你不必測試表達式。你的話應該是'string1 == string2' –

+0

不,它應該是'String1!= String2',因爲當它們相等時測試會失敗。但是請不要使用以大寫字母開頭的變量名稱,因爲按照慣例,您只能像這樣寫類名稱。順便說一句,測試也可以是:'expect:'(linefeed)'!new File('/ path/to/file')。text.toLowerCase()。contains(「books」)''。這對於某些人來說可能不那麼容易閱讀(雖然對我來說更容易些),但是也一樣,甚至表示文本文件**包含該單詞,而不是完全等於它。我認爲測試不應該比必要更冗長。 – kriegaex

回答

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 
相關問題