18

我有一个测试类,基本上应该如下所示:

[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. 如果我把断点放在里面PrepareObjects然后TestEquality我可以看到那个TestInitialize时候还没有被调用TestEquality

从私有更改PrepareObjects为公共可以解决此问题。为什么?

4

1 回答 1

31

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

于 2012-11-01T13:13:16.607 回答