class
私は Visual Studio 2008 の方法でユニット テストを開始していますが、テスト目的でアセンブリ間アクセスを実現する最善の方法は何かと考えています。
基本的に、1 つのソリューションに 2 つのプロジェクトがあります。
- マイプロジェクト (C#)
- MyProjectTests (C# テスト プロジェクト)
MyProject 内のすべてには現在、デフォルトのアクセシビリティが設定されています。これは、私の記憶が正しければ、すべてが事実上 であることを意味しますinternal
。私は主に レベルでテストしようとしていますclass
が、いくつかdelegates
関係するものがあります。
将来的には外部 API が提供されるかもしれませんが、機能の完成まではまだ 20% ほどしか進んでいません (少なくとも理論上は)。このテストされていないコアの上にさらにコードを重ねることにかなり不安を感じています。したがって、アプリが従来の (つまり、質の悪い、または怠惰な) 機能テストに十分な完成度に達する前に、そしてバージョン n+1 の外部 API がリリースされる前に、今すぐにテストを行いたいと思います。
直接的な回答に加えて、解決策の例もいただければ幸いです。
ベストアンサー1
アセンブリレベルの属性を使用することができます内部属性に表示これを達成するために。
追加
[assembly:InternalsVisibleTo("MyProjectTests")]
MyProject アセンブリの AssemblyInfo.cs に追加します。