이제 get(name)의 운명을 시험할 준비가 끝났다(예제 2-16).
예제 2-16 DiContainer.get의 포지티브 테스트(positive test)
소스 파일 2장\DI\DiContainer_03_tests.js
it('등록된 함수를 실행한 결과를 반환한다', function() { var name = 'MyName', returnFromRegisteredFunction = "something"; container.register(name,[], function() { return returnFromRegisteredFunction; }); expect(container.get(name)).toBe(returnFromRegisteredFunction); });
name과 returnFromRegisteredFunction 변수로 테스트를 DRY하게 유지(변숫값이 꼭 한 번씩 나온다)한 채 자기 서술적인(self-documenting) 기대식을 만들었다.6 작지만 눈여겨봐야 할 기법이다.
TIP
리터럴 대신 변수명을 잘 정해서 DRY하고 자기 서술적인 테스트를 작성하라.
6 역주 좋은 코드는 주석 없이 코드만 보아도 뭘 하려는 코드인지 금방 알 수 있습니다. 이런 코드를 자기 서술적(self-documenting)이라고 합니다. expect(container.get(name)).toBe(returnFromRegisteredFunction);은 expect to be가 ‘~임을 기대한다’는 영어 구문이므로 ‘container.get(name)이 returnFromRegisteredFunction임을 기대한다’는 의미가 자연스럽게 전달되는 아름다운 코드입니다.