사용자 도구

사이트 도구


groovy:unittest

차이

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

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
groovy:unittest [2012/09/17 12:06]
kwon37xi
groovy:unittest [2014/12/22 22:36] (현재)
kwon37xi
줄 1: 줄 1:
-====== Groovy UnitTest ======+====== Groovy Unit Test ====== 
 +  * [[http://groovy.codehaus.org/Testing+Guide|Groovy Testing Guide]]
   * [[http://groovy.codehaus.org/Unit+Testing|Groovy Unit Testing]]   * [[http://groovy.codehaus.org/Unit+Testing|Groovy Unit Testing]]
 +  * [[http://groovy.codehaus.org/Using+JUnit+4+with+Groovy|Using JUnit 4 with groovy]]
 +  * [[http://cobertura.sourceforge.net/|Cobertura]] Groovy까지 지원하는 코드 커버리지 툴
  
 ===== Stub ===== ===== Stub =====
줄 24: 줄 27:
     assert 0 == number % 2     assert 0 == number % 2
     return 1     return 1
 +}
 +</code>
 +  * 메소드 호출 검증. use 뒤에 verify()를 넣는다.<code groovy>
 +someStub.expect.verify()
 +</code>
 +
 +===== Mock =====
 +  * 기본적으로는 Stub과 같으나, 동작을 엄격하게 정의하고 확인한다.
 +  * 스텁의 경우는 테스트되는 클래스를 주변에서 독립시킨 후 내부의 변화에 대해 검증한다. 목의 경우는 검증의 초점이 그 클래스와 협력자들 간의 상호 작용으로 옮겨 간다. 클래스가 외부 세계와의 '규약protocol'을 잘 지키는지 검증하는 것이다.
 +  * Mock과는 달리 verify() 없이 동작(메소드)가 순서대로 모두 호출 됐는지 검증한다.
 +  * 기본 Mock 형태 <code groovy>
 +import groovy.mock.interceptor.MockFor
 +
 +def fooMock = new MockFor(Foo)
 +
 +fooMock.demand.sort()
 +fooMock.demand.getMachines { /* 행위 */}
 +
 +fooMock.use {
 +    테스트 코드
 +}
 +</code>
 +
 +===== Java Unit Test로 수행하기 =====
 +  * [[http://groovy.codehaus.org/api/groovy/util/AllTestSuite.html|groovy.util.AllTestSuite]]를 사용하면 그루비 테스트를 Java 단위 테스트인 것 처럼 호출할 수 있고, 이 때문에 각종 Java IDE에서 JUnit 테스터와 자연스럽게 통합된다.
 +  * ''-Dgroovy.test.dir=src''
 +  * ''-Dgroovy.test.pattern=*Test.groovy''
 +  * 코드로 테스트 수트 만들기<code groovy>
 +def suite = AllTestSuite.suite(".", "*Test.groovy")
 +junit.textui.TestRunner.run(suite)
 +</code>
 +
 +===== shouldFail for JUnit 4 =====
 +  * [[http://groovy.codehaus.org/api/groovy/util/GroovyTestCase.html]]의 ''shouldFail''로 Exception 테스트
 +<code groovy>
 +class ArithmeticTest {
 +    final shouldFail = new GroovyTestCase().&shouldFail
 +
 +    @Test
 +    void divideByZero() {
 +        String message = shouldFail(ArithmeticException) {
 +            println 1/0
 +        }
 +        assertEquals message, "expected exception message."
 +    }
 } }
 </code> </code>
groovy/unittest.1347851170.txt.gz · 마지막으로 수정됨: 2012/09/17 12:06 저자 kwon37xi