Tests
Les tests sont plus importants que la livraison. Si vous n'avez pas de tests ou une quantité insuffisante, chaque fois que vous livrez du code, vous ne serez pas sûr de ne rien avoir cassé. La décision sur ce qui constitue une quantité suffisante revient à votre équipe, mais une couverture de 100% (toutes les instructions et branches) est le moyen d'obtenir une confiance élevée et une tranquillité d'esprit pour les développeurs. Cela signifie qu'en plus d'avoir un excellent framework de test, vous devez également utiliser un bon outil de couverture.
Il n'y a aucune excuse pour ne pas écrire de tests. Il existe de nombreux frameworks de test JavaScript de qualité : trouvez-en un que votre équipe préfère. Lorsque vous en trouvez un qui convient à votre équipe, veillez systématiquement à écrire des tests pour chaque nouvelle fonctionnalité/module que vous introduisez. Si votre méthode préférée est le Test Driven Development (TDD), c'est excellent, mais l'essentiel est de vous assurer que vous atteignez vos objectifs de couverture avant de lancer une fonctionnalité ou de refactoriser une existante.
Un seul concept par test
Mauvais :
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);
});
});Bon :
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);
});
});