Unit of Work, Repository y Entity Framework Code First

En esta entrada voy a hablar un poco sobre una arquitectura para la capa de datos que a mi me esta funcionando muy bien. Se trata de aplicar el patrón Unit Of Work junto al Repository Pattern y Entity Framework Code First para crear una capa de acceso a datos totalmente desacoplada de la capa de negocio, de forma que nuestro modelo de aplicación y las capas superiores no se vean afectadas por un cambio en la tecnología utilizada para acceso a datos.

Leer más…

Cómo habilitar autenticación OAuth en swagger

Para usar servicios de tu WebApi autenticados swagger usa por defecto un input para usar un Api key. Pero lo mas probable es que en tu proyecto WebApi estés utilizando autenticación mediante usuario y contraseña para obtener un jwt token, para posteriormente utilizar  el token con un header Authorization bearer token.

Si quieres saber como configurar esta característica para usar bearer token desde swagger para poder consumir endpoints con este token, estás en la entrada que necesitas.

Leer más…

Cómo instalar swagger en tu WebApi

Los proyectos crecen, los endpoints se multiplican, las funcionalidades se extienden, y el legacy code llega con el tiempo.

Documentar adecuadamente tu WebApi es crucial para no acabar con un montón de servicios que con el tiempo se terminen convirtiendo en cajas negras. Si llega este momento, incluso a veces te planteas si escribir un nuevo endpoint en lugar de editar uno existente que ni recuerdas qué hacía.

Configura Swagger y comienza a disfrutar del placer de probar tu Api en cuanto expones el servicio y autodocumentar sus propiedades.

Leer más…

NUnit, ¿Por qué esta librería?

En una entrada anterior sobre herramientas para unit testing recomiendo usar esta librería, aquí justificaré y explicaré muy rápidamente algunas de las razones, como siempre estoy acostumbrando a hacer en mis entradas, aportando ejemplos prácticos, que para buscar teoría y documentación ya hay bastante fuentes.

Leer más…

Test Driven Design – TDD

El diseño dirigido por test cada vez tiene mas importancia y poseer esta skill es cada vez más valorado. En la actualidad la realización de unit test casi siempre se relega a un segundo plano, y se hace aprisa y corriendo si sobra algo de tiempo en cada release, o se pasa de puntillas sobre este tema para cubrir el expediente como algo burocrático que hay que escribir.

Si se hace una buena batería de test, con sentido, de forma que el código quede bajo cobertura de los test, y los test cubran a su vez las posibles casuísticas, tu aplicación tendrá una muy alta probabilidad de evitar o detectar bugs, de ser mantenible, confiable, de no tener miedo a introducir cambios o mejoras en el código porque tus test detectarán tus errores.

Todo esto estará conseguido si sigues TDD, ya que como voy a explicar, todo tu código se soportará sobre test creados con anterioridad.

Leer más…

Rhino Mock ¿Por qué esta librería?

El mundo del unit testing presenta una gran cantidad de librerías que puedes utilizar para abordar tus tests. Entre las mas utilizadas están las nativas de Microsoft, NUnit, Moq, Rhino Mock…

Tras haber usado en mi entorno laboral librerías nativas de Microsoft, Moq, Rhino Mock y Nunit, me he decidido por combinar estas dos ultimas con mayor frecuencia, y en esta entrada te explico por qué ha sido así.

Leer más…