나는 작은 프로젝트를 물려 받았으며 내가 추가하는 모든 새 코드에 대해 단위 테스트를 작성하여 확장하고 동시에 안정화하고 싶습니다. 첫 번째 클래스는 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가능하면.