320x100
/* kotlin */ // SumService.kotlin @Service class SumService { fun getSum(a: Int, b: Int) = a + b } | cs |
위와 같이 숫자 a, b를 입력받아 합을 반환하는 함수가 있다고하자.
이 함수를 테스트코드를 작성하여 테스트해보자.
// SumServiceSpecTest.groovy @SpringBootTest class SumServiceSpecTest extends Specification { @Autowired SumService sumService def "getSum 음수 테스트" (){ given: int a = -1 int b = -2 when: int result = sumService.getSum(a, b) then: a + b == result Assert.assertEquals(a + b, result) } def "getSum 양수 테스트" (){ given: int a = 1 int b = 2 when: int result = sumService.getSum(a, b) then: a + b == result Assert.assertEquals(a + b, result) } } | cs |
JUnit에서 자주 쓰던 given, when, then 형식으로 코딩해보면 위와 같다.
음수, 양수 테스트를 해보았다.
// SumServiceSpecTest.groovy @SpringBootTest class SumServiceSpecTest extends Specification { @Autowired SumService sumService def "getSum 테스트" (){ expect: result == sumService.getSum(a, b) where: a | b | result -1 | -2 | -3 1 | 2 | 3 } } | cs |
Spock 테스트 코드는 groovy 언어로 작성한다.
Spock 테스트의 큰 장점은 where 절이다.
a, b, result 변수 값을 여러 개 입력할 수 있어 한 번에 여러 TC를 테스트 할 수 있다.
음수, 양수 테스트를 하는 2개의 함수를 하나의 함수로 줄인 것이다.
320x100
'Back-End (web)' 카테고리의 다른 글
Visual Studio 명령 인수로 입출력 파일 설정 (0) | 2019.01.26 |
---|---|
[kotlin] Smart cast to 'Type' is impossible, because 'xxx' is a mutable property that could have been changed by this time. (0) | 2019.01.19 |
[Kotlin] Default argument (디폴트 매개변수) (0) | 2019.01.06 |
[Spock][Error] CannotCreateMockException (0) | 2019.01.03 |
[Kotlin] List, MutableList (0) | 2018.12.31 |
댓글