종료점 의미
왜 ‘종료점’이라는 용어를 사용하고 ‘행동(behavior)’ 같은 용어는 사용하지 않을까? 필자 생각이 주관적일 수 있지만, 일반적으로 함수나 컴포넌트 등 무언가를 실행했을 때(진입점) 그 안에서 상태 값을 변경하거나 서드 파티를 호출하는 등 의미 있는 작업을 실행할 것이라고 여긴다. 이 말을 처음 들었을 때는 무슨 뜻인지 헷갈릴 수 있는데, 테스트 코드를 실행하다 어떤 함수가 호출되었을 때 함수의 종료점은 해당 함수의 작업 단위가 돌아가는 실행 컨텍스트(execution context)에서 벗어나 다시 테스트 코드가 있던 곳으로(test context) 돌아간다는 의미다. 행동이라고 부르는 것은 이보다는 좀 더 유동적인 형태를 의미한다. 이 주제를 더 알고 싶다면 블라디미르 코리코프가 쓴 <단위 테스트>(에이콘출판사, 2021)4를 참고하자. 더욱 심도 있게 내용을 공부할 수 있다.
다음 예제는 작업 단위의 이해를 돕는 코드다.
예제 1-1 테스트해 보고 싶은 간단한 함수
// number-parser.js
const sum = (numbers) => {
const [a, b] = numbers.split(',');
const result = parseInt(a) + parseInt(b);
return result;
}