1. ホーム
  2. c#

[解決済み] VS2017 .NET 標準ライブラリの内部メソッドのユニットテスト

2022-04-23 08:57:49

質問

現在、最新のVisual Studio 2017 Release Candidateで、.NET Standard 1.6のライブラリを作成して遊んでいます。私はコードをユニットテストするためにxUnitを使用していますが、VS2017でも内部メソッドをテストすることができるのかどうか疑問に思っていました。

VS2015ではAssemblyInfo.csクラスに行を追加することで、指定したプロジェクトが内部メソッドを参照できるようになったと記憶しています。

[assembly:InternalsVisibleTo("MyTests")]

VS2017 .NET Standard プロジェクトには AssemblyInfo.cs クラスが存在しないため、内部メソッドのユニットテストは可能なのでしょうか?

どのように解決するのですか?

によると の .NET ドキュメントを参照してください。 InternalsVisibleToAttribute :

この属性は、アセンブリレベルで適用されます。つまり、ソースコード・ファイルの先頭に含めることもできますし、Visual StudioプロジェクトのAssemblyInfoファイルに含めることもできます。

つまり、自分で任意の名前をつけた.csファイルに配置するだけで、問題なく動作するはずです。

// some .cs file included in your project
using System.Runtime.CompilerServices;
[assembly:InternalsVisibleTo("MyTests")]