1. ホーム
  2. c#

[解決済み] C# "internal "アクセス修飾子でユニットテストを行う場合

2022-03-17 15:33:58

質問

私はユニットテストの初心者です。 internal アクセス修飾子です。もし私たちが internal を設定し、アセンブリ変数 InternalsVisibleTo ということで、公開したくない関数をテストプロジェクトからテストすることができます。このことから、私は、常に internal なぜなら、少なくとも各プロジェクトは独自のテストプロジェクトを持っている(べきだから)。なぜそうしてはいけないのか、皆さんは教えてくれますか?どのような場合に private ?

解決方法は?

内部クラスをテストする必要があり、アセンブリ属性があります。

using System.Runtime.CompilerServices;

[assembly:InternalsVisibleTo("MyTests")]

プロジェクト情報ファイルに、例えば次のように追加します。 Properties\AssemblyInfo.cs テスト対象のプロジェクトのためのものです。この場合、"MyTests" がテストプロジェクトになります。