// 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);
};