如何使用C#中的Microsoft Fakes访问静态类专用字段以对其方法进行单元测试

克里希纳

我有下面的静态类和一个其中需要进行单元测试的方法。我能够,但是此方法具有使用布尔私有变量的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条件中的逻辑。

马丁·诺雷克(Martin Noreke)

为了进行单元测试,Microsoft实现了一些帮助程序类(PrivateTypePrivateObject),这些类在这种情况下使用反射。

PrivateType myTypeAccessor = new PrivateType(typeof(TypeToAccess));
myTypeAccessor.SetStaticFieldOrProperty("bNoError", false);

PrivateType用于静态访问,而PrivateObject用于针对实例化对象进行测试。

为了使用它们,您将需要包含Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll中的Microsoft.VisualStudio.TestTools.UnitTesting命名空间。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何模拟Application类以对ViewModel进行单元测试

在C#中,使用ILogger对静态方法进行单元测试的静态方法ILoggerFactory为空

在使用Mockito进行单元测试时,如何处理ThirdParty类的静态方法调用?

如何使用Mockito模拟静态方法以进行单元测试

单元测试专用方法-目标C

单元测试中的静态类/方法/属性,是否停止

使用Fakes进行单元测试会产生IConvertible异常

什么测试足以对MVC中的“创建”控制器方法进行单元测试?

java - 如何在java中对具有嵌套静态类的类进行单元测试?

如何对静态属性进行单元测试?

如何对与System(或Android)类交互的方法进行单元测试

使用内部类进行单元测试类的正确方法

使用流对类进行单元测试的最佳方法?

Sinon 如何存根方法以对异步函数进行单元测试

如何使用xUnit对C#事件进行单元测试

在C中进行单元测试:测试静态方法的最佳方法

使用powermock单元测试静态方法

如何使用在方法中具有依赖项的moq来对类进行单元测试?

非静态类中的私有静态方法的单元测试

使用StaticLoggerBinder对类进行单元测试

c# - 如何单元测试抽象类中的内部方法或私有方法?

如何从C#中打开“ Microsoft Edge”并等待其关闭?

如何对已测试(视图模型)类中的方法进行单元测试调用?

使用Mock对C#中的更新方法进行单元测试

如何对使用IoC容器类的类进行单元测试

如何对使用Console类的类进行单元测试?

如何使用Moq框架在C#中编写私有方法的单元测试?

如何对具有多个布尔字段的类进行单元测试

快速地在快速单元测试中模拟静态类方法?