6

一連の値を参照するオブジェクトがありProperties.Settings.Default...、このオブジェクトの単体テストでこれらをスタブする必要があります。

残念ながら、設定オブジェクトの型は として宣言されinternalているため、単体テスト プロジェクトからアクセスできません。

これらのプロパティの戻り値をスタブ化するにはどうすればよいですか? モックにはRhino Mocksを使用しています。

4

3 に答える 3

7

一般的に、私はしません。「内部」オブジェクトが実際に Properties.Settings.Default を読み取る代わりに、(構築時またはプロパティを介して) cconfigurable プロパティを宣言し、別のコードでそれらを設定します。

そうすれば、単体テストでデフォルトの読み取り以外のすべてをテストでき、デフォルトの読み取り方法への結合が少なくなり、将来メカニズムを簡単に切り替えることができます。

于 2009-12-11T03:44:40.043 に答える
4

また、内部の問題を回避するのに役立つもう 1 つのヒントとして、実際に内部コードを単体テストで選択的に可視化することができます。テストしているコードで、AssemblyInfo.cs を開き、次のようなものを追加します。

#if UNITTEST
[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("YourUnitTestAssembly")]
#endif

次に、ビルドで UNITTEST シンボルを定義するだけで、テスト アセンブリはすべての内部メンバーを表示できるようになります。

于 2009-12-11T04:43:17.450 に答える