아래 square 함수에 대한 더 구체적인 assertion을 한번 살펴봅시다:
- -5가 input 값일 때, 25가 output 값으로 반환한다.
- 0이 input 값일 때, 0이 output 값으로 반환한다.
- 5가 input 값일 때, 25가 output 값으로 반환한다.
- 0.25가 input 값일 때, 0.0625가 output 값으로 반환한다.
위 assertion들이 잘 작성되었다고 느껴졌을 것입니다. 왜 그렇게 느껴졌을까요? 물론, 위 assertion들은 그냥 작성된 것이 아닙니다. 잘 만들어졌는지 여부를 확인하기 위해 square(제곱)의 특징을 한번 살펴봅시다:
- 음수를 제곱하면 양수가 된다.
- 0을 제곱하면 0이된다.
- 숫자의 제곱은 그 숫자 자신을 곱하는 것이다.
- 분수를 곱하면 그 숫자는 더 작은 분수를 반환한다.
어느 때든지 함수에 대한 테스트를 작성할 때에는 "범주적 추론(Categorical Reasoning)"을 통해 작성하고자 하는 코드가 그 기능을 충실히 이행할 수 있도록 모든 범주를 찾아야 합니다.
'TIL > TIL' 카테고리의 다른 글
(unit test) A note on testing object equality (0) | 2020.01.15 |
---|---|
(unit test) Note: Your tests go outside the code that you're testing (0) | 2020.01.15 |
(unit test) Terminology note: Assertions are not unit tests! (0) | 2020.01.15 |
(Unit test) Assertions && Test frameworks (0) | 2020.01.15 |
When should I unit test? (unit test) (0) | 2020.01.15 |
comment