[もちろん、質問は特定の「友達」の実装に限定されません。関連する場合は、実装の詳細を自由に指摘してください]
未回答の質問を読んで、私はInternalsVisibleTo
属性に出くわしました:
現在のアセンブリ内でのみ通常表示されるタイプが別のアセンブリに表示されることを指定します。
MSDNのC#プログラミングガイドには、属性を使用して別のアセンブリでメソッドと型を使用できるようにする方法を説明する[フレンドアセンブリ]セクションがあります。internal
これを使用して、単体テストアセンブリで使用するライブラリをインストルメント化するための「非表示」インターフェイスを作成するのは良い考えではないかと思います。両方向(本番アセンブリでのテストコード、テストコードでの本番アセンブリに関する詳細な内部知識)での結合が大幅に増加するようですが、一方で、パブリックインターフェイスを乱雑にすることなくきめ細かいテストを作成するのに役立つ場合があります。
テスト時に友達宣言を使用した経験は何ですか?それはあなたの銀の弾丸でしたか、それとも死の行進を始めましたか?