2011-10-14 19 views
21

no puedo encontrar un ejemplo del uso del método Cuando en MoqMoq Cuando (<bool> Func) Método

When(Func<bool> condition); 

Cuál es el propósito/uso del método? Por favor, proporcione una muestra de código que demuestre una situación en la que sería útil.

Respuesta

24

"Cuando" le da la opción de tener diferentes configuraciones para el mismo objeto burlado, dependiendo de lo que tenga que decidir. Supongamos que quiere probar un proveedor de formato que ha escrito. Si el programa (= prueba) se ejecuta por la mañana, una determinada llamada de función debe devolver nulo; por la tarde un cierto valor. Luego puede usar "Cuando" para escribir esas configuraciones condicionales.

var mockedService = new Mock<IFormatProvider>(); 

mockedService.When(() => DateTime.Now.Hour < 12).Setup(x => x.GetFormat(typeof(string))).Returns(null); 
mockedService.When(() => DateTime.Now.Hour >= 12).Setup(x => x.GetFormat(typeof(string))).Returns(42); 
2

Con este método puede configurar el comportamiento de su objeto simulado cuando la condición establecida en Mock<T>.When(...) se evalúa como verdadera. Esto permite que su objeto burlado reaccione de manera diferente según la condición dada.

Cuestiones relacionadas