2017-02-15 1 views
0

나는 spock을 처음 사용하고 문서를 읽었지만 여전히 then 섹션을 사용하는 방법을 완전히 이해하지 못했습니다. 두 문자열을 비교하려면 then 블록에 무엇이 들어갈 수 있습니까?spock 테스트에서`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 '이어야합니다. 그러나 대문자로 시작하는 변수 이름은 사용하지 마십시오. 관례 상 이와 같은 클래스 이름 만 작성하기 때문입니다. BTW, 테스트는 다음과 같을 수도 있습니다 :'expect :'(linefeed)'! new File ('/ path/to/file'). 이것은 어떤 사람들에게는 읽기 쉽지 않지만 (나에게도 쉽다.) 똑같이하고 텍스트 파일에 ** 그 단어가 포함되어 있다는 것을 표현한다. 정확히 같지 않다. 필자는 테스트가 필요 이상으로 길지 않아야한다고 생각합니다. – 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 
관련 문제