Tengo una clase abstracta que tiene un método virtual. El método es virtual en el caso de que una implementación posterior necesite anular esa funcionalidad.Configuración de Moq para ignorar un método virtual
Sin embargo, Moq representa todos los métodos virtuales, por lo que parece que no puedo probar el código real que está escrito, y en su lugar usa la configuración de Mock para ese método (que actualmente devuelve el valor predeterminado).
Ejemplo abstracto:
public abstract SomeAbstract
{
public abstract Format(IFormatProvider provider, string format)
{
// does some stuff i need to test
}
}
Mi prueba NUnit:
[Test]
public void Should_Set_Format_State()
{
Mock<SomeAbstract> mock = new Mock<SomeAbstract>();
mock.Object.Format(CultureInfo.CurrentCulture, "format string");
// do tests to make sure Format correctly changed the object's state
}
¿Cómo puedo configurar mi objeto de burla a dejar mi trabajo virtual Format
método, sin tener que quitar virtual
del método ?! Tal vez estoy abusando del concepto de burla en este caso.
Pregunta interesante, ¡aprendí algo! Hurra. –