私有TestInitialize方法不初始化对象

时间:2012-11-01 13:11:56

标签: 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中放置了断点,那么我可以看到TestInitialize时尚未调用TestEquality

PrepareObjects从私有更改为公共修复此问题。为什么呢?

1 个答案:

答案 0 :(得分:30)

测试框架只寻找公共方法。同样,如果您将TestEquality设为私有, 将无法运行,如果您将MyTest设为内部,则所显示的内容将会运行。< / p>