역자의 노트 | 캡슐화
캡슐화란 객체 지향 프로그래밍에서 중요한 개념으로, 객체의 상태(속성)와 동작(메서드)을 하나의 단위로 묶어 외부에서 직접 접근하지 못하도록 하는 것이다. 이렇게 함으로써 객체 내부 구현을 숨기고, 외부에는 필요한 인터페이스만 제공하여 코드의 유지 보수성과 안정성을 높일 수 있다. 비밀번호 검증 프로젝트 예제에서 각 it 함수는 자체 상태를 캡슐화하여 독립적으로 동작하며, 다른 테스트와 간섭은 최소화한다.
앞의 예제에서 makeVerifierWithFailedRule()과 makeVerifierWithPassingRule() 함수는 각각 verifier 객체를 생성하고 설정하는 로직을 캡슐화하고 있다. 이렇게 함으로써 각 it() 함수는 독립적으로 동작하며, 테스트를 실행할 때 상태 간섭을 방지할 수 있다. 각 it() 함수는 필요한 설정을 자체적으로 처리하므로 다른 테스트와 상호 작용 없이 독립적으로 수행될 수 있다. 이는 테스트 신뢰성을 높이고 유지 보수를 용이하게 한다.
it('has an error message based on the rule.reason', () => {
const verifier = makeVerifierWithFailedRule('fake reason');
const errors = verifier.verify('any input');
expect(errors[0]).toContain('fake reason');
});