Actualmente estoy empezando a introducir el concepto de objetos simulados en mis pruebas unitarias. En particular, estoy usando el framework Moq. Sin embargo, una de las cosas que noté es que de repente las clases que estoy probando usando este marco muestran una cobertura de código de 0%.¿Cómo puedo usar Objetos Simulados en mis pruebas de unidad y todavía utilizar la Cobertura del Código?
Ahora entiendo que, dado que me estoy burlando de la clase, no está ejecutando la clase en sí ... pero, ¿cómo escribo estas pruebas y la Cobertura del código arroja resultados precisos? ¿Tengo que escribir un conjunto de pruebas que usan Mocks y un conjunto para instanciar la clase directamente?
¿Tal vez estoy haciendo algo mal sin darme cuenta?
Aquí es un ejemplo de mí tratando de probar la unidad una clase llamada "MyClass":
using Moq;
using NUnitFramework;
namespace MyNameSpace
{
[TestFixture]
public class MyClassTests
{
[Test]
public void TestGetSomeString()
{
const string EXPECTED_STRING = "Some String!";
Mock<MyClass> myMock = new Mock<MyClass>();
myMock.Expect(m => m.GetSomeString()).Returns(EXPECTED_STRING);
string someString = myMock.Object.GetSomeString();
Assert.AreEqual(EXPECTED_STRING, someString);
myMock.VerifyAll();
}
}
public class MyClass
{
public virtual string GetSomeString()
{
return "Hello World!";
}
}
}
¿Alguien sabe lo que debería hacer de manera diferente?
Falta un corchete en el ejemplo de GetSomeString después del parámetro. –