더북(TheBook)

이제 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);
});

namereturnFromRegisteredFunction 변수로 테스트를 DRY하게 유지(변숫값이 꼭 한 번씩 나온다)한 채 자기 서술적인(self-documenting) 기대식을 만들었다.6 작지만 눈여겨봐야 할 기법이다.

TIP

리터럴 대신 변수명을 잘 정해서 DRY하고 자기 서술적인 테스트를 작성하라.

 

6 역주 좋은 코드는 주석 없이 코드만 보아도 뭘 하려는 코드인지 금방 알 수 있습니다. 이런 코드를 자기 서술적(self-documenting)이라고 합니다. expect(container.get(name)).toBe(returnFromRegisteredFunction);은 expect to be가 ‘~임을 기대한다’는 영어 구문이므로 ‘container.get(name)이 returnFromRegisteredFunction임을 기대한다’는 의미가 자연스럽게 전달되는 아름다운 코드입니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.