我一直試圖讓更多的TDD。目前在控制檯應用程序中保留了很多簡單的Debug.Asserts
。從對象測試事件
我想完成的部分測試是確保從對象中提取事件的次數正確,因爲客戶端代碼將取決於這些事件。因此,我開始考慮如何測試事件被提出,以及我如何跟蹤它們。所以我想出了一個監視器「模式」(如果你可以稱之爲)。這基本上是一個在構造函數中接受測試類型的對象的類。
然後將事件連接到監視器,並創建委託,在事件引發時對這些委託進行計數和記錄。
然後我回到我的測試代碼和做一些事情,如:
bool Test()
{
MyObject mo = new MyObject();
MyMonitor mon = new MyMonitor(mo);
// Do some tests that should cause the object to raise events..
return mon.EventCount == expectedCount;
}
這工作得很好,當我故意打掉我的代碼,測試失敗,因爲預期,但我不知道,這是太很多「自由形式」的測試代碼(即沒有支持測試的代碼)?
更多的想法
- 你測試的事件?
- 如何測試事件?
- 你認爲上述有任何漏洞/改進空間?
感謝所有的輸入! ^_^
好一點,提出的案件是相當簡單的。在某些檢查中,如果滿足某些條件,它只會增加計數。 – 2008-12-02 14:40:45