9

したがって、問題は、テストするクラスによって使用される内部クラスがアセンブリに多数あることです。アクセサーはVS2012から削除されているので、使用[InternalsVisibleTo]しても問題ありません。内部クラスをシミ化しようとした場合を除いて、Fakesフレームワークには表示されません。また、私が扱っている特定のクラスは静的メソッドを持つ静的クラスであり、組織内でそのレベルのリファクタリングに抵抗があるため、インターフェイスを使用する(およびスタブを使用する)ためにすべてをリファクタリングしたくないことにも注意してください。

(文字通り)すべてをインターフェースすることなく、これらの内部メンバーをVisual Studio 2012のシムコンテキストで使用できるようにする方法はありますか?

4

1 に答える 1

24

次のページでは、生成された偽のアセンブリに内部タイプを表示する方法について説明します。http://msdn.microsoft.com/en-us/library/hh708916.aspx#bkmk_internal_types

それは言う:

Fakesコードジェネレーターは、生成されたFakesアセンブリに表示されるタイプのシムタイプとスタブタイプを生成します。シムアセンブリの内部タイプをフェイクとテストアセンブリに表示するInternalsVisibleToAttributeには、生成されたフェイクアセンブリとテストアセンブリを可視化するシムアセンブリコードに属性を追加します。

InternalsVisibleToAttributeしたがって、テストアセンブリにターゲットアセンブリの内部タイプへのアクセスを許可するが必要です。言い換えると:

[assembly: InternalsVisibleTo("TargetAssembly.Fakes")]
[assembly: InternalsVisibleTo("TestAssembly")]
于 2012-11-26T21:35:44.170 に答える