Forem

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

Posted on

3 2

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! 🤗

Image of Timescale

🚀 pgai Vectorizer: SQLAlchemy and LiteLLM Make Vector Search Simple

We built pgai Vectorizer to simplify embedding management for AI applications—without needing a separate database or complex infrastructure. Since launch, developers have created over 3,000 vectorizers on Timescale Cloud, with many more self-hosted.

Read full post →

Top comments (0)

Sentry image

See why 4M developers consider Sentry, “not bad.”

Fixing code doesn’t have to be the worst part of your day. Learn how Sentry can help.

Learn more

👋 Kindness is contagious

Dive into an ocean of knowledge with this thought-provoking post, revered deeply within the supportive DEV Community. Developers of all levels are welcome to join and enhance our collective intelligence.

Saying a simple "thank you" can brighten someone's day. Share your gratitude in the comments below!

On DEV, sharing ideas eases our path and fortifies our community connections. Found this helpful? Sending a quick thanks to the author can be profoundly valued.

Okay