Quiero probar un fragmento de código que devuelve un objeto.Pruebas unitarias ... cómo mejorarlo
utilizo NUnit y en una clase de prueba, escribo un método para probar si mi método funciona bien ...
[Test]
public void GetMyObjectFromLog()
{
string _xmlFilePath = @"C:\XmlFile.xml";
MyObjectParser _myObjectParser = new MyObjectParser();
MyObject _mockMyObject = new MyObject
{
Title = "obj",
Name = "objName"
}
MyObject _myObject = _myObjectParser.GetMyObjectFromLog(_xmlFilePath);
Assert.AreEqual(_mockMyObject , _myObject);
}
Esta prueba no funciona porque MyObject
no altera temporalmente Equals
método, y don No desea sobrescribir el método Equals
solo para fines de prueba.
Así que volver a escribir la prueba como esta:
[Test]
public void GetMyObjectFromLog()
{
string _xmlFilePath = @"C:\XmlFile.xml";
MyObjectParser _myObjectParser = new MyObjectParser();
MyObject _myObject = _myObjectParser.GetMyObjectFromLog(_xmlFilePath);
Assert.AreEqual("obj", _myObject.Title);
Assert.AreEqual("objName", _myObject.Name);
}
Ok, funciona ... pero es este examen es pertinente? Además, hay una dependencia de un archivo.
¿Es pertinente utilizar un marco simulado en lugar de? Y cómo usarlo ?
¡Gracias!
En realidad se comarison podría escribirse en una sola línea, pero tiene mala legibilidad: 'Assert.That (myObjectA, Is.EqualTo (myObjectB) .Using ((x, y) => x.Name == y .Name && x.Title == y.Title? 0: 1)); ' –
Restuta