El objetivo de este proyecto es proporcionar un ejemplo claro y práctico de cómo utilizar Moq para realizar pruebas unitarias en una aplicación .NET. Moq es una biblioteca popular para la creación de objetos simulados (mocks) en pruebas, que permite verificar el comportamiento de las dependencias y asegurar que el código bajo prueba se comporte como se espera.
Este proyecto contiene una simple aplicación de ejemplo que gestiona artículos y autores. Utiliza Moq para simular las dependencias de repositorios en las pruebas unitarias de los servicios que manejan la lógica de negocio.
Test_Mock/
├── Data/
│ ├── Dependencias/
│ ├── Interfaces/
│ │ ├── IAutorRepository.cs
│ │ ├── IArticulosRepository.cs
│ ├── AutorRepository.cs
│ ├── ArticulosRepository.cs
├── Dominio/
│ ├── Dependencias/
│ ├── Service/
│ │ ├── ArticulosServicio.cs
├── DTOs/
│ ├── Dependencias/
│ ├── Articulo.cs
├── Tests/
│ ├── Dependencias/
│ ├── UnitTest1.cs
├── WebApi/
│ ├── Connected Services/
│ ├── Dependencias/
│ ├── Properties/
│ ├── Controllers/
│ │ ├── ArticulosController.cs
│ ├── appsettings.json
│ ├── Program.cs
El proyecto está organizado en las siguientes capas:
- Data: Contiene las interfaces y sus implementaciones para el acceso a datos.
- Interfaces: Contiene las interfaces para los repositorios.
IAutorRepository.cs
IArticulosRepository.cs
- Implementaciones: Contiene las implementaciones de los repositorios.
AutorRepository.cs
ArticulosRepository.cs
- Interfaces: Contiene las interfaces para los repositorios.
- Dominio: Contiene las entidades y servicios del dominio.
- Service: Contiene los servicios de la lógica de negocio.
ArticulosServicio.cs
- Service: Contiene los servicios de la lógica de negocio.
- DTOs: Contiene los objetos de transferencia de datos (DTOs).
Articulo.cs
- Tests: Contiene las pruebas unitarias.
UnitTest1.cs
- WebApi: Contiene los controladores de la API.
- Controllers: Contiene los controladores de la API.
ArticulosController.cs
Program.cs
appsettings.json
- Controllers: Contiene los controladores de la API.
- .NET
- Moq
- MSTest (framework de pruebas unitarias)
-
Clona este repositorio:
git clone https://github.com/nicolaymh/TestMock.git
-
Abre el proyecto en tu IDE preferido (Visual Studio, Rider, etc.).
-
Asegúrate de tener instaladas las dependencias necesarias. Puedes hacerlo desde la consola del Administrador de Paquetes de NuGet:
Install-Package Moq
Para ejecutar las pruebas unitarias, puedes usar el IDE o la línea de comandos:
- Desde el IDE, abre el Explorador de Pruebas y ejecuta todas las pruebas.
- Desde la línea de comandos, navega a la carpeta del proyecto de pruebas y ejecuta:
dotnet test