測試引發故障的函數的最佳方法是什麼?或者測試一個對失敗相當免疫的函數?測試引發故障的函數
例如;如果無法正確初始化端口,我有一個在構造函數中拋出的I/O完成端口類。這在初始化列表中使用CreateIoCompletionPort的Win32函數。如果句柄設置不正確 - 非空值 - 則構造函數將拋出異常。我從來沒有見過這個功能失敗。
我敢肯定,這(和其他功能,如它在我的代碼),如果他們無法將正確的行爲,代碼是50行,包括空格,所以我的問題是
a)是它值得測試,它會拋出
B),如果它值得測試,如何?
c)應該簡單的包裝類,因爲這些是單元測試?
對於b)我想過重寫CreateIoCompletionPort並傳遞值。在單元測試中覆蓋它,並在傳入某個值時使其返回0.但是,由於在構造函數中使用了它,因此這需要是靜態的。這看起來有效嗎?