내용으로 건너뛰기
권남
사용자 도구
로그인
사이트 도구
검색
도구
문서 보기
이전 판
역링크
최근 바뀜
미디어 관리자
사이트맵
로그인
>
최근 바뀜
미디어 관리자
사이트맵
추적:
•
obs
•
nix
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/Using+JUnit+4+with+Groovy|Using JUnit 4 with groovy]] * [[http://cobertura.sourceforge.net/|Cobertura]] Groovy까지 지원하는 코드 커버리지 툴 ===== Stub ===== * 기본 Stub 형태 <code groovy> // Class Foo가 있을 때 import groovy.mock.interceptor.StubFor def fooStub = new StubFor(Foo) // 메소드 행위 지정 fooStub.demand.firstMethod { /* 행위 */ } fooStub.demand.secondMethod { /* 행우 */ } fooStub.use { 테스트코드 } </code> * 동일 메소드에 대한 demand를 여러본 호출하면 그 이후 메소드 호출시 demand 순서대로 행위를 수행함. * ''someStub.demand.methodOne(0..35) { ... }'' : 해당 메소드 호출 횟수를 Range로 지정한다. * 메소드 인자는 Colosure에서 받는다.<code groovy> someStub.demand.methodOne { number -> assert 0 == number % 2 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>
groovy/unittest.txt
· 마지막으로 수정됨: 2014/12/22 22:36 저자
kwon37xi
문서 도구
문서 보기
이전 판
역링크
맨 위로