moq
Comportamiento burlón
Buscar..
Sintaxis
- mock.Setup (expresión). Devuelve (valor) // Cuando se llama al método en la expresión, se devolverá un valor
Parámetros
Parámetro | Detalles |
---|---|
expresión | Expresión Lambda que especifica la invocación del método. |
Método sin argumento de burla
interface Mockable {
bool DoSomething();
}
var mock = new Mock<Mockable>();
mock.Setup(x => x.DoSomething()).Returns(true);
var result = mock.Object.DoSomething(); //true
Métodos vacíos de burla para confirmar lo que devuelven
var logRepository = new Mock<ILogRepository>();
logRepository.Setup(x => x.Write(It.IsAny<Exception>(), It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>()))
.Verifiable();
En este caso, estamos utilizando el Verificable para garantizar que se ejecute.
También podríamos usar una devolución de llamada aquí:
logRepository.Setup(x => x.Write(It.IsAny<Exception>(), It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>()))
.Callback<Exception, string, string, string, string, string>((ex, caller, user, machine, source, message) => { Console.WriteLine(message); });
esto registraría la salida del método a la salida estándar en la consola (muchos marcos de prueba le permiten capturar esa salida en su corredor)
Burlándose de los miembros protegidos
Para burlarse de un miembro protegido, primero debe incluir lo siguiente en la parte superior de su dispositivo de prueba:
using Moq.Protected;
Luego llama a Protected()
en su simulacro, después de lo cual puede usar la Setup<>
genérica Setup<>
con el tipo de retorno de su método.
var mock = new Mock<MyClass>();
mock.Protected()
.Setup<int>("MyProtectedGetIntMethod")
.Returns(1);
Si el método devuelve void, use el programa de Setup()
no genérico Setup()
.
Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow