unitarias unit test setup pruebas objetos net mock ejemplo con c# .net asp.net unit-testing mocking

c# - unit - ¿Burlarse de tontos?



pruebas unitarias c# con mock (5)

Soy nuevo en la burla, tengo un nuevo proyecto web .NET que está en la estructura UI-> BLL-> DAL-> DB, uso NUnit para hacer algunas pruebas actualmente. Intento usarlo para probar el nivel medio, así que no tengo que escribir en DB.

Ahora, nunca he hecho ninguna burla, no sé por dónde empezar, así que estoy buscando un marco de burla que tenga algunas muestras de extremo a extremo. ¿Podría alguien señalarme un material burlón que comienza desde el principio y con muestras completas, por favor?

Gracias,

Rayo.


¿TypeMock? ...

bueno, mejor burla para mí: interfaces, algunas refactorizaciones de tu código un poco y averiguar qué es lo que quieres probar para que no necesites ninguna burla. O bien, cualquier inyección de dependencia para burlarse de algunas cosas (pero antes de que necesites refactorizar un poco el curso)


Rhino Mocks es un framework que podrías usar que he usado un poco.

Cheat sheet tiene algunos enlaces si quieres probar algunos otros, aunque el artículo está un poco anticuado.


Deberías echarle un vistazo a algunos videos sobre burlarse en Dimecasts.net, es una manera rápida de hacerte una idea de lo que se trata la burla y comenzar con tu propio código.

Introducción a Moq

Introducción a RhinoMocks


Por el momento hay una serie de marcos de burla diferentes. Le recomendaría que eche un vistazo a RhinoMock o TypeMock. Ambos son gratuitos para proyectos personales / de código abierto. TypeMock también tiene una licencia corporativa.

RhinoMock lo obliga a refactorizar su código para la prueba (si es necesario, si ya tiene un código comprobable, lo está haciendo bien). Esto requiere más trabajo, pero te dejará con un código que está débilmente acoplado, lo cual es una bendición en sí mismo. Debido a esto, hay ciertos constructos que simplemente no puedes simularte directamente con Rhino. Sin embargo, siempre puedes introducir capas adicionales de direccionamiento indirecto y resolverlo de esa manera. Sin embargo, la línea de fondo es la siguiente: necesita hacer más trabajo, pero finalmente la refactorización beneficiará a su código.

Por otro lado, TypeMock funciona modificando el código sobre la marcha (utiliza la API del generador de perfiles para aplicar código). Esto le permite emplear burlas para códigos que no son adecuados para este tipo de prueba. TypeMock te permitirá simular cualquier cosa (excepto por mscorlib), por lo que es fácil comenzar y funciona bien con el código heredado. Sin embargo, debido a que no está obligado a refactorizar su código, no obtiene el beneficio adicional de los tipos ligeramente acoplados. Además, TypeMock a veces generará errores muy extraños debido a que el código de ejecución se modifica.