所以,我試圖讓我的頭腦如何編寫可測試的代碼,並且正在玩一個.srt(字幕)播放器的項目。可測試的代碼 - 我做對了嗎?
我有一個類Player,它有屬性框架和sourcePath。
我有一個方法loadFrames(),我通常會寫,只是打開在sourcePath找到的文件,解析它,並相應地填充框架。
但是 - 我想能夠測試這個。我想避免不得不調用文件系統 - 我希望能夠定義sourcePath中'文件'的內容在我的測試中。
我這樣做的方式是使方法loadFrames採用一個類型爲IFileLoader的參數,它有一個方法String [] GetSourceText(String source);
生產中使用的真正FileLoader將解析在源文件中找到的文件。在我的測試中,我使用了一個FakeFileLoader,它返回我設置的內容屬性的值。
所以 - 我的問題是 - 我是否以良好的方式做到這一點。它不像我通常寫代碼的方式。編寫可測試的代碼當然似乎感覺與我習慣的不同,雖然這滿足了我當前的要求,可以指定源代碼的內容 - 我想知道我做過的方式是否合乎邏輯。是否有更好,更明智的方式來達到同樣的效果?
非常感謝所有幫助和見解!
P.S我沒有使用任何模擬框架等,只是普通的代碼。我實際上是用C#編寫的,我從來沒有做過(通常是Java),但我當然認爲這是一個通用的測試問題,而不是針對任何一種語言。
我沒有使用遺留代碼 - 這是一個個人項目 - 非常小,我希望獲得的很大一部分是提高我對可測試代碼的理解。目前爲止只有很少的代碼存在。 – QuakerOat 2012-02-01 02:08:23