我有下面的静态类和一个其中需要进行单元测试的方法。我能够,但是此方法具有使用布尔私有变量的if条件,并且如果它的值为false,那么它将在if条件中执行步骤。
public static class Logger
{
private static bool bNoError = true;
public static void Log()
{
if (!bNoError)
{
//Then execute the logic here
}
else
{
//else condition logic here
}
}
}
有没有一种方法可以将私有字段bNoError值设置为true,以便可以使用一种测试方法来测试if条件中的逻辑。
为了进行单元测试,Microsoft实现了一些帮助程序类(PrivateType和PrivateObject),这些类在这种情况下使用反射。
PrivateType myTypeAccessor = new PrivateType(typeof(TypeToAccess));
myTypeAccessor.SetStaticFieldOrProperty("bNoError", false);
PrivateType用于静态访问,而PrivateObject用于针对实例化对象进行测试。
为了使用它们,您将需要包含Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll中的Microsoft.VisualStudio.TestTools.UnitTesting命名空间。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句