더북(TheBook)

이렇게 외부와 연결된 직접적인 의존성은 어떻게 해결할 수 있을까? 애석하게도 해결할 수 없다. 이후에 해당 의존성을 다른 것으로 대체할 수 있도록 코드를 다르게 작성해야 한다. 즉, 의존성을 대체할 수 있는 을 만들어야 한다. 다음 예제는 이러한 심을 사용하는 방식을 보여 준다.

예제 3-7 필수 의존성 추상화하기

// stub-time/001-modular/password-verifier-time00-modular.js
const originalDependencies = { 
    moment: require('moment'),
};

let dependencies = { ...originalDependencies }; 

const inject = (fakes) => {   
    Object.assign(dependencies, fakes);
    return function reset() { 
        dependencies = { ...originalDependencies };
    };
};

const SUNDAY = 0;
const SATURDAY = 6;


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