더북(TheBook)

우선 테스트하고 싶은 범위 안에서 임의의 정수를 반환하는 함수를 정의한다(이 테스트에서는 양수로 만족한다).

테스트할 첫 번째 속성은 어떤 수에 0을 더한 결과는 그 수 자신이라는 속성이다(항등원).

더욱 확신을 얻기 위해 난수를 사용해 여러 번 테스트를 반복한다.

테스트할 두 번째 속성은 두 수를 더한 합은 두 수의 순서를 바꿔 더해도 달라지지 않는다는 속성이다(교환 법칙).

테스트할 세 번째 속성은 세 수를 더할 때 각 수를 어떻게 묶어도 덧셈 결과가 달라지지 않는다는 속성이다(결합 법칙).

소프트 단언문을 사용하면 여러 단언문을 함께 실행할 수 있다(소프트 단언문의 경우). 단언문 중 일부가 실패해도 모든 결과를 얻을 수 있다.

 

이 작은 예제만 살펴봐도 함수의 속성을 테스트하는 방식이 예제 데이터 집합을 사용해 테스트하는 방식과 어떻게 다른지 알 수 있다. 테스트할 올바른 속성을 찾아내는 것이 어려울 수 있지만, 전통적인 TDD에서는 보통 테스트하고 싶은 예를 식별하기가 더 쉽다.

반면 속성 테스트를 사용하면 더 큰 확신을 얻을 수 있고, 코드의 문제점을 전혀 예상치 못한 방식으로 발견할 수도 있다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.