문서의 선택한 두 판 사이의 차이를 보여줍니다.
| 양쪽 이전 판 이전 판 다음 판 | 이전 판 | ||
|
groovy:unittest [2012/09/17 12:03] kwon37xi |
groovy:unittest [2014/12/22 22:36] (현재) kwon37xi |
||
|---|---|---|---|
| 줄 1: | 줄 1: | ||
| - | ====== Groovy | + | ====== Groovy |
| + | * [[http:// | ||
| * [[http:// | * [[http:// | ||
| + | * [[http:// | ||
| + | * [[http:// | ||
| ===== Stub ===== | ===== Stub ===== | ||
| - | + | * 기본 Stub 형태 | |
| - | <code groovy> | + | |
| // Class Foo가 있을 때 | // Class Foo가 있을 때 | ||
| import groovy.mock.interceptor.StubFor | import groovy.mock.interceptor.StubFor | ||
| 줄 17: | 줄 19: | ||
| 테스트코드 | 테스트코드 | ||
| } | } | ||
| + | </ | ||
| + | * 동일 메소드에 대한 demand를 여러본 호출하면 그 이후 메소드 호출시 demand 순서대로 행위를 수행함. | ||
| + | * '' | ||
| + | * 메소드 인자는 Colosure에서 받는다.< | ||
| + | someStub.demand.methodOne { number -> | ||
| + | assert 0 == number % 2 | ||
| + | return 1 | ||
| + | } | ||
| + | </ | ||
| + | * 메소드 호출 검증. use 뒤에 verify()를 넣는다.< | ||
| + | someStub.expect.verify() | ||
| + | </ | ||
| + | |||
| + | ===== Mock ===== | ||
| + | * 기본적으로는 Stub과 같으나, 동작을 엄격하게 정의하고 확인한다. | ||
| + | * 스텁의 경우는 테스트되는 클래스를 주변에서 독립시킨 후 내부의 변화에 대해 검증한다. 목의 경우는 검증의 초점이 그 클래스와 협력자들 간의 상호 작용으로 옮겨 간다. 클래스가 외부 세계와의 ' | ||
| + | * Mock과는 달리 verify() 없이 동작(메소드)가 순서대로 모두 호출 됐는지 검증한다. | ||
| + | * 기본 Mock 형태 <code groovy> | ||
| + | import groovy.mock.interceptor.MockFor | ||
| + | |||
| + | def fooMock = new MockFor(Foo) | ||
| + | |||
| + | fooMock.demand.sort() | ||
| + | fooMock.demand.getMachines { /* 행위 */} | ||
| + | |||
| + | fooMock.use { | ||
| + | 테스트 코드 | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | ===== Java Unit Test로 수행하기 ===== | ||
| + | * [[http:// | ||
| + | * '' | ||
| + | * '' | ||
| + | * 코드로 테스트 수트 만들기< | ||
| + | def suite = AllTestSuite.suite(" | ||
| + | junit.textui.TestRunner.run(suite) | ||
| + | </ | ||
| + | |||
| + | ===== shouldFail for JUnit 4 ===== | ||
| + | * [[http:// | ||
| + | <code groovy> | ||
| + | class ArithmeticTest { | ||
| + | final shouldFail = new GroovyTestCase().& | ||
| + | |||
| + | @Test | ||
| + | void divideByZero() { | ||
| + | String message = shouldFail(ArithmeticException) { | ||
| + | println 1/0 | ||
| + | } | ||
| + | assertEquals message, " | ||
| + | } | ||
| + | } | ||
| + | </ | ||