失敗時にスローされる関数をテストする最良の方法は何ですか? または、障害の影響をかなり受けない機能をテストしますか?
例えば; I/O Completion Port
ポートを正しく初期化できない場合にコンストラクターをスローするクラスがあります。これは、イニシャライザ リストのWin32
関数を使用します。CreateIoCompletionPort
ハンドルが正しく設定されていない場合 (null 以外の値)、コンストラクターは例外をスローします。この関数が失敗するのを見たことがありません。
これ(および私のコード内の同様の他の関数)が失敗した場合、コードは空白を含めて50行の長さであるため、私の質問は
a)それがスローされることをテストする価値は
ありますか b)テストする価値がある場合、どのように?
c) 単体テストが必要なため、単純なラッパー クラスを使用する必要がありますか?
CreateIoCompletionPort
b) については、値をオーバーライドして渡すことを考えました。単体テストではそれをオーバーライドし、特定の値が渡されたときに 0 を返すようにします。ただし、これはコンストラクターで使用されるため、これは静的である必要があります。これは有効に見えますか?