コードを内部的に作成し、他のプロジェクトからユニットテストできるようにする 質問する

コードを内部的に作成し、他のプロジェクトからユニットテストできるようにする 質問する

すべてのユニット テストを独自のプロジェクトに配置しています。ユニット テストのためだけに、特定のクラスを内部ではなくパブリックにする必要があることがわかりました。これを回避する方法はありますか。クラスをシールではなくパブリックにすると、メモリにどのような影響がありますか。

ベストアンサー1

.NETを使用している場合は、内部表示対象アセンブリ属性を使用すると、「フレンド」アセンブリを作成できます。これらは、他のアセンブリの内部クラスおよびメンバーへのアクセスが許可される、特定の厳密に名前が付けられたアセンブリです。

注意: これは、関係するアセンブリを密に結合するため、慎重に使用する必要があります。InternalsVisibleTo は、単体テスト プロジェクトでよく使用されます。上記の理由により、実際のアプリケーション アセンブリで使用するのはおそらく適切ではありません。

例:

[assembly: InternalsVisibleTo("NameAssemblyYouWantToPermitAccess")]
namespace NameOfYourNameSpace
{

おすすめ記事