我花了一些時間尋找解決問題的方法,但沒有成功! 這裏是我的問題:我有一些代碼,執行以下操作:如何測試吞下的異常
public void DoSomething(){
try{
DoStuffThatCanThrowException();
}catch(Exception e){
// Do nothing...
}
}
正如你所看到的,try catch
塊燕子能在DoStuffThatCanThrowException()
拋出的所有異常。 我正在努力想辦法編寫一個單元測試,基本確保在DoStuffThatCanThrowException()
中沒有任何異常。這裏的難點在於我既不能更改try catch
塊,也不能更改DoStuffThatCanThrowException()
方法。
任何提示的高度讚賞。
編輯 一個重要的細節我忘了提,我不能直接調用DoStuffThatCanThrowException
,因爲它是internal
等都不是從外界可見。
看起來像一個大代碼的氣味。任何*好*理由你不能改變方法?似乎有點愚蠢的邏輯有一個嘗試/抓住周圍的東西,你試圖*證明*不能打一個例外。 – KingCronus 2012-03-26 20:40:25
你可以控制任何有關情況(權限,文件的存在,配置,任何東西),以確保引發異常嗎? – 2012-03-26 20:41:13
好像你沒有進行單元測試,因爲你正在測試一個代碼單元,並且取決於另一個代碼單元的結果來驗證你的測試。我想測試DoStuffThatCanThrowException()分開,然後嘲笑調用使用依賴注入的方法 – 2012-03-26 20:46:38