編輯:語言/平臺是C#/ .NET懲戒非虛活動(在COM互操作類)
目前,我想要在我當前的項目,以填補一個巨大的單元測試空白,併成爲公認的新到TDD,發現自己非常難以測試如何測試一些更關鍵業務功能。
我拿起了Moq,並有一個簡單的嘲笑,但在我的應用程序的核心是一個相當大的,可怕的COM互操作層,我有一個困難的時間概念如何進行適當的單元測試。 COM組件完全是第三方,因此不能被修改,並且實現了處理電話呼叫的有限狀態機。該組件通過一組非虛擬事件通知我的應用程序,我想按某些命令測試以模擬狀態更改,但Moq不提供任何方法來爲除虛擬事件之外的任何事情執行此操作。
所以我對更有知識的TDDers/Mockists的問題是:你會如何去測試這種事情?
顯然TypeMock支持這個(作爲交換它自己的缺點),但我寧願不將它用於各種類型安全的原因,我的一般感覺是它在我背後做了一些迂迴的事情。
我真的很欣賞這個經過深思熟慮的迴應,但它似乎仍然貫穿着問題的癥結,因爲在COM組件和某個抽象層之間總會有一個無法測試的交互。也許我對TDD理念的理解是根本上有缺陷的...... – TheMissingLINQ 2009-04-22 20:07:26