Skip to content

Démarrage

aaa-lint est une famille de plugins de lint qui imposent le motif Arrange-Act-Assert dans votre code de test. Chaque bloc de test doit contenir trois commentaires marqueurs — arrange, act, assert — dans cet ordre précis.

js
it('adds two numbers', () => {
  // arrange
  const a = 1
  const b = 2

  // act
  const sum = a + b

  // assert
  expect(sum).toBe(3)
})

Pourquoi AAA ?

Les tests qui suivent le motif AAA sont plus faciles à lire et à modifier. Les relecteurs repèrent la préparation, l'action testée et les attentes d'un coup d'œil. Le motif incite aussi les auteurs à garder des tests courts et focalisés.

aaa-lint traduit cette convention en vérification mécanique pour qu'elle résiste à la fatigue des revues et au renouvellement de l'équipe.

Langages pris en charge

LangageLinterPaquet
JavaScript / TypeScriptESLinteslint-plugin-aaa-pattern
RubyRuboCoprubocop-aaa
PHPPHP_CodeSnifferphpcs-aaa

Les trois implémentations partagent les mêmes options (labels, testFunctions, caseSensitive, allowEmptySection), ce qui permet aux projets multilangages de conserver une configuration cohérente.

Personnaliser les étiquettes

Les étiquettes par défaut sont en anglais : arrange, act, assert. Vous pouvez les remplacer pour n'importe quelle langue ou style :

jsonc
{
  "labels": {
    "arrange": ["given"],
    "act":     ["when"],
    "assert":  ["then"]
  }
}

Plusieurs graphies par section sont acceptées, pratique quand l'équipe varie légèrement dans les formulations :

jsonc
{
  "labels": {
    "arrange": ["préparation", "préparer"],
    "act":     ["exécuter"],
    "assert":  ["vérifier", "assertion"]
  }
}

Étapes suivantes

Choisissez le plugin adapté à votre stack et suivez son guide de configuration :