我想僅處理特定ErrorCode的ManagementException異常,並且無法爲其編寫單元測試。通常情況下,我會寫的測試,使其類似如下:如何設置ManagementException的ErrorCode?
Searcher search = MockRepository.GenerateMock<Searcher>();
// wrapper for ManagementObjectSearcher
...
search.Expect(s => s.Get()).Throw(new ManagementException());
...
然而,這並沒有設置錯誤代碼到,我想特別的人,確實ManagementException沒有一個構造函數,設置此值。
這怎麼辦? (注意,我使用RhinoMocks作爲我的模擬框架,但我假設這是獨立於框架的;我在這裏需要知道的是如何創建一個具有特定ErrorCode值的ManagementException,並且我已經找到了一些引用到在線System.Management.ManagementException.ThrowWithExtendedInfo(ManagementStatus errorCode)
方法,但這似乎不公開)。
這就是RhinoMocks如果模擬ManagementException會做什麼。但是,ErrorCode不是可覆蓋的屬性。你能否通過自省來闡述你的意思? – jpoh 2009-07-06 03:59:25
在本地.NET中,即http://msdn.microsoft.com/en-us/library/system.reflection.aspx - 但如果有以這種方式不可覆蓋的屬性,則依賴注入是您的最後一個,最好的希望 - 讓我編輯我的答案相應地解釋。 – 2009-07-06 04:20:43