사용자 도구

사이트 도구


java:spock

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
다음 판 양쪽 다음 판
java:spock [2016/09/25 21:13]
kwon37xi
java:spock [2016/12/28 10:42]
kwon37xi
줄 10: 줄 10:
 testCompile group: 'org.spockframework', name: 'spock-core', version: '1.0-groovy-2.4' testCompile group: 'org.spockframework', name: 'spock-core', version: '1.0-groovy-2.4'
 testCompile group: 'cglib', name: 'cglib-nodep', version: '3.2.4' // Class Mocking 할 때 필요. testCompile group: 'cglib', name: 'cglib-nodep', version: '3.2.4' // Class Mocking 할 때 필요.
 +</code>
 +
 +===== Spock Feature Method 기본형태(test method) =====
 +<code groovy>
 +// 일반적인 테스트
 + 
 +def "Feature Method name"() {
 +    :given "생략가능"
 +    // 테스트용 데이터 초기화
 + 
 +    :when
 +    // 테스트 대상 코드를 실행하고 실행 결과를 변수 등에 저장
 + 
 +    :then
 +    // 테스트 결과에 대한 검증.
 +    // 각 줄은 boolean 결과를 내는 Statement 로 작성한다.
 +    // 만약 한 줄의 코드가 boolean statement가 아니고 복잡한 구문일 경우에는 
 +    // 그 안의 assert boolean 구문에 'assert somebooleanexpression' 형태로 assert를 붙여야한다.
 +}
 + 
 +// Data Driven 테스트
 +def "Feature method name #a - #b = #c"(변수 a, 변수 b, 변수 c) {
 +    expect:
 +    // 각 데이터 변수로 테스트 수행
 + 
 +    where: "각 데이터 변수 설정"
 +    a | b || c
 +    1 | 2 || 3
 +    4 | 5 || 6
 +}
 </code> </code>
  
줄 31: 줄 61:
 capturedEvent.oldModel == oldModel capturedEvent.oldModel == oldModel
 </code> </code>
 +
 +===== Mock 선언이 작동하지 않을 때 =====
 +  * 대상 Class 혹은 Method가 ''**final**''로 선언돼 있으면 아무 오류없이 Mock 이 작동하지 않는다.
 +
 +===== 오류 / Error =====
 +  * [[https://github.com/spockframework/spock/issues/491|Spock and Slf4j combination causes compilation error]] : Spock에서 ''@groovy.util.logging.Slf4j'' 사용시에 ''Error:Groovyc: The current scope already contains a variable of the name $spock_valueRecorder'' 오류가 발생하는 경우가 있다. Logger 직접 선언할 것.
  
 ===== 참조 ===== ===== 참조 =====
java/spock.txt · 마지막으로 수정됨: 2020/08/27 13:35 저자 kwon37xi