私有TestInitialize方法不初始化对象

Sup*_*est 17 c# mstest private-members visual-studio-2012

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

[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));
    }        
}
Run Code Online (Sandbox Code Playgroud)

但是当我运行测试时,我得到了一个NullReferenceException.如果我把里面的断点PrepareObjectsTestEquality然后我可以看到TestInitialize尚未被援引的时间TestEquality是.

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

Mar*_*ell 30

测试框架只寻找公共方法.同样,如果你让TestEquality私人,将无法运行,如果你做MyTest的内部,则没有显示将运行.

  • 这个答案的简单性和回顾性的显而易见性让我想起了我生命中的一个小时,我永远不会回来. (5认同)