2011-10-26 5 views
3

私はoutパラメータを持つメソッドを持っており、例外がスローされる可能性があります。私は、Rhinoのモックと、この動作をテストしたいので、私は実行します。Rhino .OutRefと互換性がありません。

Expect.Call(() => mymethod(null, null, out integer1, out integer2)) 
       .IgnoreArguments().OutRef(1, 2).Throw(new Exception()); 

しかし、アウトパラメータが初期化される前に、例外がスローされることはかなり明確に表示されます。

私は何か間違っているのですか、それとも通常のサイの行動ですか? この問題にどう対処しますか?

答えて

0

おそらくRhino.Mocksのバグです。私は.Throw()メソッドを使用して "私はこのメソッドを呼び出すと、この例外をスローする"と言うと思います。それがすべてです - 例外がスローされます。

out変数を初期化することを期待しないようにコードを再設計します例外がスローされます。 try/catchブロック内にメソッドをラップして例外をキャッチすると、メソッドがどこでも死んでいる可能性があると私は想定しています。

多分、コードは2つの方法に分割できますか?

+0

まあ、私は推測しています...パラメータはまだ特定の種類の例外に対して初期化されていると主張したいと思いますが、おそらくそれに頼っているのは推奨された動作ではありません。最終的には、リファクタリングが解決策です。 – Zonko

関連する問題