dre*_*oso 6 c# unit-testing visual-studio
我知道可以通过以下方式更改可见性:
using System.Runtime.CompilerServices;
[assembly: InternalsVisibleTo("UnitTests")]
namespace Foobar
{
internal class Foo
{
//...
}
}
Run Code Online (Sandbox Code Playgroud)
所以我的测试项目可以为类创建测试Foo.问题是我有很多内部类,我不想用它来assembly表达它们.还有另一种方法InternalsVisibleTo("UnitTests")可以为整个项目做这件事吗?
Cod*_*ter 11
该[InternalsVisibleTo]属性是一个程序集级属性,这意味着如果您定义它一次,它就已经应用于整个程序集.
因此,您显示的行只需要在项目中只包含一次以应用于所有内部类型.
我建议将其移动到指定其他程序集级属性的位置:在AssemblyInfo.cs项目的Properties文件夹中的文件中.
要扩展@CodeCaster的注释,应该放置该属性
AssemblyInfo.cs
Run Code Online (Sandbox Code Playgroud)
在项目的"属性"部分中
例如
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: InternalsVisibleTo("UnitTests")]
Run Code Online (Sandbox Code Playgroud)
您还需要完全限定程序集名称
例如
[assembly: InternalsVisibleTo("Foo.Bar.UnitTests")]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1990 次 |
| 最近记录: |