¿Cómo puedo usar Mock Objects en mis pruebas de unidad y seguir usando la cobertura de código?

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 he notado es que, de repente, las clases que estoy probando con este marco muestran una cobertura de código del 0%.

Ahora comprendo que, dado que simplemente me estoy burlando de la clase, no se está ejecutando la clase en sí … pero, ¿cómo escribo estas pruebas y obtengo resultados precisos de la cobertura de código? ¿Tengo que escribir un conjunto de pruebas que utilicen simulacros y un conjunto para crear una instancia de la clase directamente?

¿Quizás estoy haciendo algo mal sin darme cuenta?

Aquí hay un ejemplo de cómo bash probar en clase 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 myMock = new Mock(); 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 estar haciendo diferente?