Saya telah mewarisi proyek kecil dan ingin memperpanjang dan menstabilkannya pada saat yang sama dengan menulis Tes Unit untuk semua kode baru yang saya tambahkan. Kelas pertama TypedAudioCreator
,, membuat file audio dan ini ternyata sangat mudah untuk diuji pertama dan menulis kode untuk yang kedua.
Namun, ketika tiba saatnya untuk menulis TypedAudioPlayer
, saya tidak tahu bagaimana saya bisa mengujinya. Ini adalah kelas yang sangat kecil yang berfokus pada dasar-dasar bermain suara:
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);
}
}
Saya masih sangat baru di TDD, tetapi saya menyadari manfaat dari latihan ini dan ingin mencoba dan menjadi lebih baik. Saya telah menulis Kode terlebih dahulu, tidak ada tes di sini, tapi itu hanya saya yang terlalu malas untuk memikirkan cara TDD untuk menyelesaikannya. Pertanyaan saya adalah, bagaimana saya bisa menguji kelas ini?
audioFile.SoundPlayer
. Kemudian uji dengan tiruan ini, dan verifikasi itu PlaySync
dan Dispose
dipanggil di tempat yang tepat. Anda juga ingin dapat menyuntikkan StartedPlayingHandler
dan StoppedPlayingHandler
jika memungkinkan.