私がテストしようとしているクラスに問題があります。私はプライベート列挙型を宣言しており、コード内の汎用辞書にその列挙型を使用しています。この列挙型はこのクラスの外では意味を持ちませんが、プライベートメソッドで使用されます。私がコードを生成すると、アクセサは汎用辞書型に書き込まれますが、テストを使用しようとすると無効キャスト例外がスローされます。Visual Studioでプライベートタイプを含むジェネリックスを使用する方法ユニットテスト
MyClass_Accessor target = new MyClass_Accessor();
Dictionary<MyClass_Accessor.MyEnum, long> dictionary = new Dictionary<MyClass_Accessor.MyEnum, long>();
dictionary.Add(MyClass_Accessor.Myenum.EnumValue, 1);
target.Method(dictionary); //Throws invalid cast exception here.
例外がアクセッサ=>列挙の一般的な辞書は、長い長い、MYCLASS =>列挙型に変換することができないことです。
私の作業クラスを変更する以外に、この方法をテストする方法はありますか?
辞書が指定された型ではなく実際の型であるため、これが機能すると仮定しています。私はこれを0日にしますが、これはクラスの目的を変更することなくおそらく動作しますが、これをサポートする方法を見つけるとうまくいくでしょう。 – Spence
Microsoftは単体テストをサポートするためにInternalsVisibleTo属性を追加しました。これは主な目標の1つであり、マイクロソフト独自のライブラリの目的に使用されています(使用例の例が必要な場合は、Enterprise Library 3.0と4.0が重要な例です)。 – jrista