domingo, 4 de agosto de 2019

Crear pruebas unitarias con TDD y AAA

TDD (Test Driven Developer) con AAA (Arrange, Act, Assert)

Arrange: Definir los objetos que seran utilizados para las pruebas unitarias
Act: Ejecutar los objetos necesarios para llevar a cabo las pruebas unitarias
Assert: Comparar el resultado esperado con el resultado obtenido.



Creamos la clase del método que resuelve la lógica con el proyecto de tipo "Biblioteca de clases Net Framework" "XCalculadora":


CalculadoraDeImpuestos.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace XCalculadora
{
    public class CalculadoraDeImpuestos
    {
        public decimal IbtenerIVA(decimal montoReserva)
        {
            const decimal porcentaje = 0.16m;
            decimal ivaReserva = porcentaje * montoReserva;
            return ivaReserva;
        }
    }
}


----------------------------------------------------------------------

El mismo metodo pero utilizando expresiones lambda y delegados



namespace XCalculadora
{
    public class CalculadoraDeImpuestos
    {
        private const decimal porcentajeIva = 0.16m;
        public delegate decimal Lambda(decimal value);

        public Lambda ObtenerIVA = delegate (decimal value) { return porcentajeIva * value; };
    }

}








Creamos el metodo que utiliza AAA en las pruebas unitarias en el proyecto "Test Unit" "XCalculadoraDeImpuestos"


CalculadoraTest.cs

using System;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using XCalculadora;

namespace XCalculadoraDeImpuestosTest
{
    /*
     Proyecto: sistema d administracion de un hotel
     Delimitacion: impuestos
     Requerimiento:
        Obtener el iva a partir del monto de una reserva
        Obtener el impuesto de un hospedaje a partir de una reserva
        Obtener el monto total de la reserva (con impuestos incluidos)
    */

    [TestClass]
    public class CalculadoraTest
    {
        [TestMethod]
        public void ImpuestosTest()
        {
            //Arrange
            CalculadoraDeImpuestos ci = new CalculadoraDeImpuestos();

            //Act
            decimal iva = ci.IbtenerIVA(1550.00m);

            //Assert

            //iva 16%
            //reserva = 1550
            //1550 * 16% = 248
            Assert.AreEqual(248.00m, iva);
        }
    }

}

No hay comentarios.:

Publicar un comentario