特定の ErrorCode に対してのみ ManagementException 例外を処理したいのですが、単体テストの作成に問題があります。通常、次のようになるようにテストを記述します。
Searcher search = MockRepository.GenerateMock<Searcher>();
// wrapper for ManagementObjectSearcher
...
search.Expect(s => s.Get()).Throw(new ManagementException());
...
ただし、これは ErrorCode を特に必要なものに設定しません。実際、ManagementException にはこの値を設定するコンストラクターがありません。
これはどのように行うことができますか?
(私はモック フレームワークとして RhinoMocks を使用していますが、これはフレームワークに依存しないと想定しています。ここで知っておく必要があるのは、特定の ErrorCode 値を持つ ManagementException を作成する方法だけです。また、System.Management.ManagementException.ThrowWithExtendedInfo(ManagementStatus errorCode)
オンラインでメソッドへの参照をいくつか見つけました。しかし、これは公にアクセスできるようには見えません)。