더북(TheBook)

 

// main.test.js
const FakeMusicPlayerAdapter = require('./FakeMusicPlayerAdapter');
test('should pretend to play a song', () => {
    const musicPlayer = new FakeMusicPlayerAdapter();
    const result = musicPlayer.play('Harry Potter Theme');
    expect(result).toBe('Pretending to play Harry Potter Theme');
});

이 테스트는 가짜 어댑터를 사용하여 음악을 재생하는 기능을 검증한다. 여기에서는 FakeMusicPlayerAdapter를 사용하여 play() 메서드를 호출하고 결과가 기대한 대로 나오는지 확인한다. 이것으로 외부 시스템과 실제 상호 작용 없이 내부 로직을 검증할 수 있다.

이번에는 반대로 음악 재생기로 예제 3-8처럼 의존성을 구현한 형태의 코드를 비교해 보자.

음악 재생기 모듈부터 구현한다.

 

// musicPlayer.js
let dependencies = {
    player: {
      play: (song) => console.log(`Playing ${song}`)
    }
};

const inject = (fakes) => {
    Object.assign(dependencies, fakes);
};

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