Частный метод TestInitialize не инициализирует объекты - программирование

Частный метод TestInitialize не инициализирует объекты

У меня есть тестовый класс, который должен в основном выглядеть следующим образом:

[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 от частного до публичного исправления. Почему?

4b9b3361

Ответ 1

Рамка тестирования ищет только общедоступные методы. Аналогично, если вы сделаете TestEquality private, который не будет запущен, и если вы сделаете MyTest внутренним, то ничего не будет показано.