DEV Community

Cover image for Testes (Código Limpo: Que Bruxaria é Essa?!?! - Parte 7)
ananopaisdojavascript
ananopaisdojavascript

Posted on

Testes (Código Limpo: Que Bruxaria é Essa?!?! - Parte 7)

Testar é mais importante do que enviar para produção. Se você não tem testes ou tem uma quantidade inadequada destes, toda vez que você envia o seu código, não terá certeza de que não quebrou nada. Cabe ao seu time decidir o que constitui uma quantidade adequada de testes, mas é o 100% de cobertura (todas as declarações e ramificações) é o modo pelo qual você adquire autoconfiança e paz de espírito como desenvolvedor. Isso significa que além de usar um excelente "framework" de testes, você também precisa de uma boa ferramenta de cobertura. Não há desculpa para não escrever testes. Há muitas "frameworks" bons de testes JS, então encontre um do agrado da sua equipe. Quando você encontrar o que funciona para seu time, tenha o objetivo de sempre escrever testes para cada nova funcionalidade/módulo que introduza. Se o seu método favorito é o Desenvolvimento Orientado a Testes (TDD), é bom, porém o ponto principal é apenas ter certeza de que você está alcançando seus objetivos de cobertura antes de lançar qualquer funcionalidade ou refatorar uma existente.

Um único conceito por teste

Não é recomendável:

import assert from "assert";

describe("MomentJS", () => {
  it("handles date boundaries", () => {
    let date;

    date = new MomentJS("1/1/2015");
    date.addDays(30);
    assert.equal("1/31/2015", date);

    date = new MomentJS("2/1/2016");
    date.addDays(28);
    assert.equal("02/29/2016", date);

    date = new MomentJS("2/1/2015");
    date.addDays(28);
    assert.equal("03/01/2015", date);
  });
});
Enter fullscreen mode Exit fullscreen mode

É recomendável:

import assert from "assert";

describe("MomentJS", () => {
  it("handles 30-day months", () => {
    const date = new MomentJS("1/1/2015");
    date.addDays(30);
    assert.equal("1/31/2015", date);
  });

  it("handles leap year", () => {
    const date = new MomentJS("2/1/2016");
    date.addDays(28);
    assert.equal("02/29/2016", date);
  });

  it("handles non-leap year", () => {
    const date = new MomentJS("2/1/2015");
    date.addDays(28);
    assert.equal("03/01/2015", date);
  });
});
Enter fullscreen mode Exit fullscreen mode

E aí? Gostaram? Até a próxima tradução! 🤗

Top comments (0)