해당 포스팅은 톰 롱의 Good Code, Bad Code (P.347~353)를 읽고 정리한 글입니다.
기능뿐만 아니라 동작을 시험하라
테스트 대상 코드가 수행하는 작업이 여러 가지가 있으며 이 각각의 작업에 대해 테스트 케이스를 따로 작성해야 한다.
함수당 하나의 테스트 케이스만 있으면 적절하지 않을 때가 있다.
테스트를 작성하는 개발자가 기능 테스트에만 집중하면, 각 상황에서 올바르게 동작하는지 충분히 확인하지 못할 수 있다.
해결책 : 각 동작을 테스트하는 데 집중하라
함수와 동작 사이에 일대일로 연결이 안 되는 경우가 많다. 코드에 대한 신뢰도를 높이기 위해 여러 가지 값과 경계 조건을 테스트하는 것도 타당하므로 여러 케이스가 포함되어야 한다.
모든 동작이 테스트되었는지 거듭 확인하라
코드가 제대로 테스트되는지 여부를 측정하기 위한 한 가지 좋은 방법은 수정된 코드에 버그나 오류가 있음에도 여전히 테스트를 통과할 수 있는지 생각해 보는 것이다.
대상 코드의 각 줄, if 문, 논리 표현식, 값 등은 그것이 존재하는 이유가 있어야 한다. 불필요한 코드라면 그것은 제거되어야 한다.
오류 시나리오를 잊지 말라
오류가 자주 발생할 것으로 예상하지 않기 때문에 이러한 경우 다소 경계 조건처럼 보일 수 있다. 그럼에도 불구하고 코드가 서로 다른 오류 시나리오를 처리하고 알리는 방법은 코드를 작성하거나 호출하는 쪽 모두가 관심을 갖는 중요한 동작이다. 따라서 이 경우 역시 테스트해야 한다.
'📚 개발자의 서재 > Good Code, Bad Code' 카테고리의 다른 글
[Good Code Bad Code] 단위 테스트의 실제 -3 (0) | 2025.03.07 |
---|---|
[Good Code Bad Code] 단위테스트의 실제-2 (0) | 2025.03.06 |
[Good Code Bad Code] 테스트 더블 (0) | 2025.03.04 |
[Good Code Bad Code] 단위테스트의 원칙-2 (0) | 2025.03.03 |
[Good Code Bad Code] 단위테스트의 원칙-1 (0) | 2025.03.02 |