3 min de lectura · Publicado el

Composición de un Test en TDD y sus métodos

test

En esta entrada hablaremos de la composición de un test en TDD,  y los métodos que suelen usarse en ellos.

Composición de un test en TDD. Métodos mas comunes

  • describe: Se utiliza para agrupar un conjunto de pruebas, donde se ejecutarán pruebas unitarias agrupadas por clase y/o por método de la clase.
describe("Test for Person", ()=>{

  describe("Test for person.getFullName", ()=>{
  });

  describe("Test for person.getAgeInYears", ()=>{
  });
});
  • beforeeach: Dentro de cada describe, podemos incluirlo. Todo lo que ejecutamos dentro de él, se ejecuta antes de cada it que contiene el describe*.* Un posible uso puede ser, para inicializar una variable que todos los test de ese describe usarán.
describe("Test for Person", ()=>{

  beforeEach(()=>{
   // Código que se ejecutará al principio de cada it de éste describe
  });

  describe("Test for person.getFullName", ()=>{

      beforeEach(()=>{
       // Código que se ejecutará al principio de cada it de éste describe
      });

  });

  describe("Test for person.getAgeInYears", ()=>{
  });
});
  • aftereach: Igual que el anterior, dentro de cada describe se podría incluir. Todo lo que ejecutamos dentro de él, se ejecuta al acabar cada it que contiene el describe*.* Un posible uso puede ser en parar todo flujo en la aplicación una vez acabada las comprobaciones, para que al siguiente test, no le afecte.
describe("Test for Person", ()=>{

  afterEach(()=>{
   // Código que se ejecutará al final de cada it de éste describe
  });

  describe("Test for person.getFullName", ()=>{

      afterEach(()=>{
       // Código que se ejecutará al final de cada it de éste describe
      });

  });

  describe("Test for person.getAgeInYears", ()=>{
  });
});
  • it: En cada it, definimos los casos de prueba a testear dentro de cada describe. Cada uno de ellos, debe evaluar un caso de prueba en particular.
describe("Test for Person", ()=>{

  describe("Test for person.getFullName", ()=>{

    it("should return an string with name + lastname", ()=>{	
     //CODE
    });

  });

  describe("Test for person.getAgeInYears", ()=>{

    it("should return '34' years", ()=>{
     //CODE
    });

    it("should return '24' years", ()=>{
     //CODE
    });

    it("should return '20' years with negative number", ()=>{
     //CODE
    });

  });

});
expect(6+6).toEqual(12);

expect(1 === 1).toBeThuthy();

expect(null).toBeNull();

expect("Nicolas").toEqual("Nicolas");

Test Completo

describe("Test for Person", ()=>{

  describe("Test for person.getFullName", ()=>{

   it("should return an string with name + lastname", ()=>{
     let person = new Person("Nicolas", "Molina", 24);
     expect(person.getFullName()).toEqual("Nicolas Molina");
   });
  });

  describe("Test for person.getAgeInYears", ()=>{

   it("should return '34' years", ()=>{
     let person = new Person("Nicolas", "Molina", 24);
     let age = person.getAgeInYears(10);
     expect(age).toEqual(34);
   });

  it("should return '20' years", ()=>{
     let person = new Person("Nicolas", "Molina", 20);
     let age = person.getAgeInYears(15);
     expect(age).toEqual(35);
  });

  it("should return '20' years with negative number", ()=>{
     let person = new Person("Nicolas", "Molina", 28);
     let age = person.getAgeInYears(-10);
     expect(age).toEqual(28);
  });
 });
});