sobreescribir - que es una instancia en c#
El método privado TestInitialize no es inicializar objetos (1)
El marco de prueba solo busca métodos públicos. De manera similar, si hace que TestEquality
privado, eso no se ejecutará, y si hace que MyTest
interno, no se ejecutará nada de lo que se muestra.
Tengo una clase de prueba que básicamente debería ser como la siguiente:
[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));
}
}
Pero cuando ejecuto las pruebas, obtengo una NullReferenceException
. Si pongo puntos de interrupción dentro de PrepareObjects
y TestEquality
entonces puedo ver que TestInitialize
no ha sido invocado en el momento en que TestEquality
es.
El cambio de PrepareObjects
de privado a público soluciona esto. ¿Por qué?