所以對於記錄從SO和其他網站在互聯網上最好的迴應似乎是:單元測試:記錄和依賴注入
void DoSomething() {
Logger.Log("Doing something!");
// Code...
}
現在一般你避免靜電的方法,但在登錄的情況下(一個特例)這是最簡單和最乾淨的路線。在靜態類中,您可以通過配置文件/框架輕鬆注入實例,以獲得與DI相同的效果。
我的問題來自單元測試的角度。
在上面的示例代碼中,想象DoSomething()的要點是將兩個數字加在一起。我會爲這個罰款寫我的單元測試。記錄怎麼樣?
我會爲日誌記錄編寫單元測試(但爲記錄器本身使用模擬實例)嗎?我知道如果是這種情況,我將不得不編寫集成測試來證明記錄器實際寫入日誌文件,但我不確定。
以下測試驅動開發(我這樣做)單元測試將需要我來規定接口不?
有什麼建議嗎?
嗯,我一直在說,你從來不寫一行代碼,而無需編寫一個測試,以證明其價值(TDD)所以這是這背後的動機。 – Finglas 2009-07-22 20:53:35
@Dockers,可能被引用到死亡中,但這裏是Kent Beck對此的承擔。我認爲這條線更適合初學者。正如Jon所說,一旦你知道自己在做什麼,你的確可以跳過這些事情。 http://stackoverflow.com/questions/153234/how-deep-are-your-unit-tests/153565#153565 – Yishai 2009-07-22 20:59:14
優秀。我不知道這是在這裏,讀了肯特貝克斯的消息。我會檢查整個討論。乾杯。 – Finglas 2009-07-22 21:02:08