我試圖在單元測試我的代碼時變得更好 - 包括嘗試一些tdd。我有一個問題是我應該如何去測試一個解析csv文件的對象。讓我舉一個小例子單元測試 - 何時/如何存根?
class EventLog {
parse() {
// load csv file, create array of Events
}
getEvents(options) {
// depending on options, return correct set of events
}
}
class Event {}
因此,首先,我想要寫我的getEvents
方法,該方法可以確保不同的選擇產生正確的結果的測試。在這種情況下,我想創建一個存根來解析,我可以通過一組Events
,然後對該數據集運行我的測試?
其次,我將需要測試解析方法。計劃測試簡單的東西,如文件不存在時,格式不符合預期,正確Events
創建等。爲此,我應該只存儲一些示例.csv
文件,涵蓋我需要的情況?或者將拉出loadCsv()
的方法和存根更有效?
使用類似繼承的優點/缺點vs使用sinon stub方法? –
@TroyCosentino通常很少,我只是喜歡繼承,因爲它的簡單性。你不能比'延伸'更多的點到點。當一個班級需要更復雜的嘲弄或者我不想要任何原始行爲時,存根就派上用場了。 – ssube
真棒,謝謝你的信息!絕對有助於讓我的頭腦進入正確的心態 –