Estoy aprendiendo el desarrollo impulsado por pruebas e intentando usar la biblioteca Moq para burlarse. ¿Cuál es el propósito del método de instalación de la clase Mock?Simulacros de objetos - Método de instalación - Prueba de desarrollo impulsado
Respuesta
método de instalación se utiliza para establecer las expectativas sobre el objeto de burla Por ejemplo:
mock.Setup(foo => foo.DoSomething("ping")).Returns(true);
Aquí está configurando el método DoSomething
en objeto de burla. Usted dice que cuando el parámetro es "ping", el método devuelve verdadero.
Ahora, este objeto puede actuar como un simulacro o un trozo en función de su uso. Si desea usarlo en pruebas basadas en estado, puede actuar como un stub. Si desea usarlo en pruebas basadas en el comportamiento, puede actuar como un simulacro. En las pruebas de comportamiento, se le llamará al método verificar en el objeto de burla para afirmar que el método fue llamado con el parámetro "ping"
adicionales se refieren estos enlaces:
El el comportamiento predeterminado de un objeto Moq Mock
es un trozo de todos los métodos y propiedades. Esto significa que una llamada a ese método/propiedad con cualquier parámetro no fallará y devolverá un valor predeterminado para el tipo de devolución en particular.
se llama a Setup
método para cualquiera o todas de las siguientes razones:
- desea restringir los valores de entrada para el método.
public interface ICalculator {
int Sum(int val1, val2);
}
var mock = new Mock<ICalculator>();
mock.Setup(m=>m.Sum(
It.IsAny<int>(), //Any value
3 //value of 3
));
La configuración anterior hará coincidir con una llamada al método Sum
con cualquier valor de val1
y val2
valor de 3.
- Usted desea devolver un valor específico. Continuando con
ICalculator
ejemplo, la siguiente configuración devolverá un valor de 10, independientemente de los parámetros de entrada:
var mock = new Mock<ICalculator>();
mock.Setup(m=>m.Sum(
It.IsAny<int>(), //Any value
It.IsAny<int>() //Any value
)).Returns(10);
- que desea utilizar
Mock<T>.VerifyAll()
después le configuraciones para verificar que todas las configuraciones anteriores han sido llamados (una vez).
var mock = new Mock<ICalculator>();
mock.Setup(m=>m.Sum(
7, //value of 7
3 //value of 3
));
mock.Setup(m=>m.Sum(
5, //value of 5
3 //value of 3
));
mock.VerifyAll();
El código anterior comprueba que Sum
se llama dos veces. Una vez con (7,3)
y una vez con (5,3)
.
- 1. Refactorización y desarrollo impulsado por prueba
- 2. Desarrollo impulsado por prueba rápida en Java
- 3. Proceso de programación de pseudocódigo vs. Desarrollo impulsado por prueba
- 4. Desarrollo impulsado por prueba para bibliotecas de procesamiento de señal
- 5. Programación de funciones y simulacros de objetos
- 6. Desarrollo impulsado por prueba para una biblioteca JavaScript
- 7. ¿Cuándo utilizar el desarrollo impulsado por dominio y el desarrollo impulsado por base de datos?
- 8. Simulacros de objetos que admiten métodos de encadenamiento
- 9. Prueba de desarrollo impulsado en iOS ... a TDD o no a TDD
- 10. ¿Qué es el desarrollo impulsado por componentes?
- 11. ¿Es factible introducir el desarrollo impulsado por prueba (TDD) en un proyecto maduro?
- 12. Pruebas unitarias de métodos vacíos/simulacros de señales de objetos burlones
- 13. Uso de simulacros en las pruebas
- 14. Desarrollo de software impulsado por modelos vs. Haskell
- 15. ¿Qué opinas sobre Desarrollo de software impulsado por modelos?
- 16. ¿Cómo se puede implementar el desarrollo impulsado por prueba con el código heredado?
- 17. Cuándo usar los simulacros parciales?
- 18. throw checked Excepciones de simulacros con Mockito
- 19. Instalación del kit de desarrollo FastCGI
- 20. ¿El costo de rendimiento de la codificación de "desarrollo impulsado por excepciones" en Java?
- 21. Prueba de objetos para cambios
- 22. Diseño impulsado por dominio, objetos de dominio, actitud sobre Setters
- 23. Entorno de desarrollo/prueba/control de calidad ideal para desarrollo
- 24. Prueba de objetos con dependencias en PHPUnit
- 25. Desarrollo de versión y control de prueba
- 26. Método de instalación con Params Array
- 27. ¿Para qué sirve el desarrollo impulsado por modelos?
- 28. Instalación de un servicio de Windows de desarrollo propio
- 29. Licencia de MSDN (desarrollo, prueba, demostración)
- 30. Ejemplos de prueba de unidad?
No me di cuenta de que uno simplemente podía llamar a Setup() más de una vez para configurar múltiples parámetros diferentes, y este es el único lugar donde lo he visto. –