为库的内部类编写UnitTests

时间:2015-05-12 14:34:52

标签: c# mstest microsoft-fakes

我在库中有以下类,我必须编写UnitTests,并由我的开发团队为其编写单元测试。

internal sealed class Settings : AppSettingsBase
{
    private static Settings defaultInstance = ((Settings)(Synchronized(new Settings())));

    public static Settings Default { get { return defaultInstance; } }
}

由于它的内部我无法在我的.Tests项目中访问它。当我查看stackoverflow时,建议是要求开发人员在AssemblyInfo.cs文件中放置一个属性[assembly:InternalsVisibleTo(“MyTests”)]。这就是我要求我的开发人员,但它需要一些时间。

有没有办法通过任何反射概念或任何其他概念来读取这些属性或变量。我在我的测试项目中使用Microsoft FAkes。

1 个答案:

答案 0 :(得分:6)

单元测试的目的是测试代码的可公开访问的方面。因为它是内部的,所以不应该直接进行单元测试。测试使用此类的公共功能。

如果必须对其进行测试,那么解决方案确实是将[assembly:InternalsVisibleTo("MyTests")]添加到程序集中。这不需要很长时间。它只需要快速编辑AssemblyInfo.cs文件。