我有一个基本上应该如下的测试类:
[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
从私有更改为公共修复此问题。为什么呢?
答案 0 :(得分:30)
测试框架只寻找公共方法。同样,如果您将TestEquality
设为私有, 将无法运行,如果您将MyTest
设为内部,则所显示的内容将会运行。< / p>