Mockup

using CapaServicio.Controllers;
using CapaServicio.Models;
using CapaServicio.Repository;
using CapaServicio.Service;
using Microsoft.AspNetCore.Mvc;
using Moq;

namespace CapaTest
{

    public class UnitTest1
    {
        private Mock<IAlumnoService> _mockService;
        private AlumnoesController _controller;

        public UnitTest1()
        {
            // Crear el mock del servicio y configurar su comportamiento
            _mockService = new Mock<IAlumnoService>();
            // Esto son datos falsos de prueba que será lo que obtengamos cuando
            // El controlador llame al servicio
            _mockService.Setup(s => s.ObtenerTodos()).Returns(new List<Alumno> { new Alumno(), new Alumno() });
            _mockService.Setup(s => s.ObtenerPorId(2)).Returns(new Alumno());

            //// Crear una instancia del controlador con el mock del servicio
            _controller = new AlumnoesController(_mockService.Object);
        }

        [Fact]
        public async Task Test1Async()
        {
            // Aquí verifico el index
            var result = await _controller.Index() as ViewResult;

            // Verificar
            Assert.NotNull(result);
            // Compruebo, por ejemplo, que el modelo es una lista de alumnos
            Assert.IsType(typeof(List<Alumno>), result.Model);
            Assert.Equal(2, ((List<Alumno>)result.Model).Count);

            // Aquí verifico el Details con un id 2
            result = await _controller.Details(2) as ViewResult;
            Assert.NotNull(result);
            // Compruebo que el modelo sea alumno...
            Assert.IsType(typeof(Alumno), result.Model);


        }
    }
}

Publicado por

Juan Pablo Fuentes

Formador de programación y bases de datos