Buscar..


Observaciones

Moq es una biblioteca de burlas para .Net. Permite simular y verificar las interacciones con las dependencias para facilitar las pruebas unitarias.

Las notas de la versión para diferentes versiones de Moq se pueden encontrar aquí .

Instalación o configuración

  1. Seleccione el proyecto al que desea agregar la referencia a Moq.
  2. Abra Nuget para este proyecto.
  3. Seleccione "Examinar" que escriba "moq" en el cuadro de búsqueda.
  4. Seleccione "Moq" y luego haga clic en Instalar.

introduzca la descripción de la imagen aquí

Siguiendo estos pasos, instalará el paquete Moq y agregará una referencia a él en las referencias del proyecto seleccionado. Después de completar estos pasos, Moq puede usarse en el proyecto de prueba de unidad simplemente declarándolo en los archivos de clases de prueba:

Using Moq;

Moqs son dobles de prueba

Los simulacros se entienden como dobles de prueba, que permiten validar las interacciones con los simulacros, no están diseñados para reemplazar el sistema que está probando. Los ejemplos a menudo demostrarán las características de Moq de la siguiente manera:

// Create the mock
var mock = new Mock<IMockTarget>();

// Configure the mock to do something
mock.SetupGet(x => x.PropertyToMock).Returns("FixedValue");

// Demonstrate that the configuration works
Assert.AreEqual("FixedValue", mock.Object.PropertyToMock);

// Verify that the mock was invoked
mock.VerifyGet(x => x.PropertyToMock);

Si bien este ejemplo muestra los pasos involucrados en el uso del simulacro, es importante recordar que en realidad no prueba nada, aparte de que el simulacro se ha configurado y utilizado correctamente. Una prueba real que haga uso de un simulacro suministrará el simulacro al sistema que se va a probar. Para probar el siguiente método:

public class ClassToTest
{
    public string GetPrefixedValue(IMockTarget provider)
    {
        return "Prefixed:" + provider.PropertyToMock;
    }
}

Es posible crear un simulacro de la interfaz dependiente:

public interface IMockTarget
{
    string PropertyToMock { get; }
}

Para crear una prueba que realmente valide el comportamiento del método GetPrefixedValue :

// Create and configure the mock to return a known value for the property
var mock = new Mock<IMockTarget>();
mock.SetupGet(x => x.PropertyToMock).Returns("FixedValue");

// Create an instance of the class to test
var sut = new ClassToTest();

// Invoke the method to test, supplying the mocked instance
var actualValue = sut.GetPrefixedValue(mock.Object);

// Validate that the calculated value is correct
Assert.AreEqual("Prefixed:FixedValue", actualValue);

// Depending on what your method does, the mock can then be interrogated to
// validate that the property getter was called.  In this instance, it's
// unnecessary since we're validating it via the calculated value.
mock.VerifyGet(x => x.PropertyToMock);


Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow