我有一個做一些IO通常看起來像這樣的方法:單元測試 - 不包括捕撈
public bool Foo()
{
try
{
// bar
return true;
}
catch (FileNotFoundException)
{
// recover and complete
}
catch (OtherRecoverableException)
{
// recover and complete
}
catch (NonRecoverableException ex)
{
ExceptionPolicy.HandleException(ex, "LogException");
return false;
}
}
的方法不是關鍵任務的完成,也有外部的恢復步驟 - 並且拋出NonRecoverableException相對常見 - 規範中它返回false,報告'此時無法完成',並且處理也隨之移動。 NonRecoverableException不會使程序處於無效狀態。
當我的單元測試,而這些例外之一被拋出,我得到
Activation error occured while trying to get instance of type ExceptionPolicyImpl
而且我想抑制有利於獲得實際/原始異常信息而不是錯誤EntLib無法記錄(並且實際上強制執行NonRecoverableException並且有一個[ExpectedException(typeof(NonRecoverableException))]單元測試,以確保此方法符合規範
我該如何解決這個問題?
編輯 使用預處理指令並不理想,因爲我討厭在代碼庫中看到特定於測試的代碼。
那好吧;太棒了。非常感謝你。我打算將此標記爲已接受,但在一天左右時間內,希望您能得到更多讚揚以獲得如此好的答案。 – 2010-08-17 04:02:16