c#.net 中的类方法前加上internal,表示仅仅是本程序集中的对象可以访问,而其他程序集中的对象不能访问。
在单元测试过程中,有时需要对加上internal的方法进行测试,为了能在测试程序集中访问,可以在被测试程序集中添加InternalsVisibleTo来实现。
在被测试程序集中,可以找到AssemblyInfo.cs文件(vs中在解决方案资源管理器的Properties节点下),在其中添加
using System.Runtime.CompilerServices;
[assembly:InternalsVisibleTo("UnitTestAssemblyName")]
上面语句中的UnitTestAssemblyName直接替换为单元测试程序集的名称即可,加入单元测试程序集的名称为MyUnitTestAssembly,则上述语句具体化为:
using System.Runtime.CompilerServices;
[assembly:InternalsVisibleTo("MyUnitTestAssembly")]
至此,在单元测试程序集中可以直接访问被测程序集中的internal方法。