c# - 私有(private) TestInitialize 方法未初始化对象

标签 c# visual-studio-2012 mstest private-members

我有一个基本上应该像下面这样的测试类:

[TestClass]
public class MyTest
{
    private MyClass o1;
    private MyClass o2;

    [TestInitialize]
    private void PrepareObjects()
    {
        o1 = new MyClass();
        o2 = new MyClass();
    }

    [TestMethod]
    public void TestEquality()
    {
        Assert.IsTrue(o1.Equals(o2));
    }        
}

但是当我运行测试时,我得到了一个NullReferenceException。如果我在 PrepareObjectsTestEquality 中放置断点,那么我可以看到 TestEquality 时尚未调用 TestInitialize是。

PrepareObjects 从私有(private)更改为公共(public)可以修复此问题。为什么?

最佳答案

测试框架只寻找公共(public)方法。同样,如果您将 TestEquality 设为私有(private),that 将不会运行,如果您将 MyTest 设为内部,则什么都不会 显示将运行。

关于c# - 私有(private) TestInitialize 方法未初始化对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13177844/

相关文章:

c# - PreApplicationStartMethod 属性导致异常

c# - 串联性能

c# - 如何将 "click"处理程序添加到作为控件模板一部分的按钮?

wcf - 关于服务引用和 MVVM 模式的一些常见问题

C# 重复公共(public)代码的单元测试

visual-studio-2008 - 使用 ReSharper Test Runner 运行 MSTest 单元测试

c# - WPF - 在鼠标悬停时使圆形按钮变大

c# - 挣扎于线程?

visual-c++ - 为 Visual Studio 2012 安装 OpenCV

c# - 为什么不使用 async/await 关键字时异步单元测试会失败?