나는 작은 프로젝트를 물려 받았으며 내가 추가하는 모든 새 코드에 대해 단위 테스트를 작성하여 확장하고 동시에 안정화하고 싶습니다. 첫 번째 클래스는 TypedAudioCreator
오디오 파일을 생성하며 첫 번째 테스트와 코드 작성이 매우 쉬운 것으로 판명되었습니다.
그러나 글을 쓸 시간이되었을 때 TypedAudioPlayer
, 어떻게 테스트 할 수 있는지 전혀 몰랐습니다. 소리 재생의 기본에 중점을 둔 매우 작은 수업입니다.
public class TypedAudioFilePlayer
{
public event StartedPlayingHandler StartedPlaying;
public event StoppedPlayingHandler StoppedPlaying;
public readonly int TimeBetweenPlays;
private Queue<TypedAudioFile> _playlist = new Queue<TypedAudioFile>();
public TypedAudioFilePlayer(int timeBetweenPlays)
{
TimeBetweenPlays = timeBetweenPlays;
}
public void AddFile(TypedAudioFile file)
{
_playlist.Enqueue(file);
}
public void StartPlaying()
{
ThreadPool.QueueUserWorkItem(ignoredState =>
{
while (_playlist.Count > 0)
{
var audioFile = _playlist.Dequeue();
if (StartedPlaying != null)
StartedPlaying(audioFile);
audioFile.SoundPlayer.PlaySync();
audioFile.SoundPlayer.Dispose();
if (StoppedPlaying != null)
StoppedPlaying(audioFile);
}
});
}
public void StopPlaying()
{
if (StoppedPlaying != null)
StoppedPlaying(null);
}
}
나는 아직도 TDD에서 매우 신입이지만 연습의 이점을 깨닫고 더 열심히 노력하고 싶습니다. 코드를 먼저 작성했지만 여기에는 테스트가 없지만 TDD를 해결하는 방법을 제대로 생각하기에는 너무 게으른 것입니다. 내가 가진 질문은 어떻게이 수업을 테스트해야합니까?
audioFile.SoundPlayer
. 그런 다음이 모의과 시험, 그리고 다음을 확인 PlaySync
하고 Dispose
적절한 장소라고합니다. 또한 주입 할 수 있기를 원하는 StartedPlayingHandler
과를 StoppedPlayingHandler
가능하면.