2017-02-15 3 views
0

Ich bin neu zu spock und habe die Dokumentation durchgegangen, aber verstehe noch nicht vollständig, wie man den then Abschnitt benutzt. Wenn ich zwei Strings vergleichen möchte, was würde im then Block gehen?Wie man `then` Block im Spocktest verwendet

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 
} 

muss ich die Prüfung nicht bestanden, wenn beide Strings gleich sind, aber zur Zeit geht es.

+0

Sie haben noch einen Ausdruck zu testen. Das sollte dann sein, 'string1 == string2' –

+0

Nein, es sollte' String1! = String2' sein, weil der Test fehlschlagen sollte, wenn sie gleich sind. Aber bitte verwenden Sie keine Variablennamen, die mit Großbuchstaben beginnen, da Sie per Konvention nur solche Klassennamen schreiben würden. Übrigens könnte der Test auch einfach sein: 'expect:' (Zeilenvorschub) '! New Datei ('/ Pfad/zu/Datei'). Text.toLowerCase(). Enthält (" Bücher ")'. Dies mag für einige Leute etwas weniger leicht zu lesen sein (für mich einfacher), aber macht das selbe und drückt sogar aus, dass die Textdatei ** das Wort enthält, nicht dass es genau gleich ist. Ich denke, ein Test sollte nicht ausführlicher sein als nötig. – kriegaex

Antwort

2

Wahrscheinlich wollen Sie dies tun:

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

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

then: 
string1 != string2 

Aber Sie wollen überprüfen, dass diese beiden Objekte nicht Gleichen. Also in der when Block, müssen Sie equals Methode überprüfen. So sollte Ihr Test wie folgt aussehen:

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

when: 
boolean notEquals = string1 != string2 

then: 
notEquals 

oder kürzer:

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

expect: 
string1 != string2 
Verwandte Themen