더북(TheBook)

예제 2-14 get 함수에서 미등록 성명인지 확인

소스 파일 2장\DI\DiContainer_02_tests.js

describe('get(name)', function() {
it('성명이 등록되어 있지 않으면 undefined를 반환한다', function() {
  expect(container.get('notDefined')).toBeUndefined();
});
});

get 함수 자체가 없으니 말할 나위도 없이 테스트는 실패할 것이다. TDD 사상에 따라 당장 에러를 조치할 만큼의 코딩만 한다(예제 2-15).

예제 2-15 최소한의 DiContainer.get 함수 코드

소스 파일 2장\DI\DiContainer_02.js

DiContainer.prototype.get = function(name) {
};

어라? 테스트가 성공한다! TDD에서 ‘우연히’ 성공하는 테스트는 괜찮다. 앞으로 뭘 테스트할지 확실히 알고 있다면 잘못된 상황은 저절로 바로 잡힌다. TDD 신념을 굽히지 않을 용기를 발휘할 시점이다. 지금 여기서 뭔가 다른 코드가 들어차 있으면 테스트를 앞질러 가버린 셈이다.

TIP

코드가 전혀 없어도 좋으니 테스트를 성공시킬 최소한의 코드만 작성하라. 애플리케이션 코드가 테스트보다 앞서 나가면 안 된다.

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