| Propriété | Valeur |
|---|---|
| Catégorie | Reproductibilité (JustDummies.Reproducibility) |
| Sévérité | 🟠 Avertissement |
| Activée par défaut | Oui |
Any.UseSeed(int, string) fournit le snippet de rejeu — le code qu’un lecteur copie pour rejouer l’exécution — que les conseils d’échec de génération citent tels quels. Un snippet vide est rejeté à l’exécution.
Ce qui justifie la vérification à la compilation, c’est où cette levée atterrit. Cette surcharge existe pour un adaptateur de framework de test, qui ouvre la portée depuis un hook s’exécutant avant chaque test. Un snippet vide fait donc échouer toute la suite comme erreur d’infrastructure, et non une seule assertion — une façon disproportionnellement coûteuse d’apprendre une faute de frappe que le compilateur voit déjà.
Non conforme
using IDisposable scope = Any.UseSeed(1234, ""); // JD021
using IDisposable scope = Any.UseSeed(1234, " "); // JD021
Conforme
using IDisposable scope = Any.UseSeed(1234, "[Reproducible(Seed = 1234)]");
// Ou supprimez l'argument : le snippet par défaut nomme Any.Reproducibly(seed, ...).
using IDisposable scope = Any.UseSeed(1234);
Passez le code lui-même — un attribut avec son argument de graine, un réglage de lanceur — et non une phrase à son sujet. Il est cité tel quel dans le message d’échec.
Ce qui n’est pas signalé
- Un snippet non constant.
- Un test qui vérifie le rejet, où l’appel constitue tout le corps d’une lambda passée en argument.
JustDummies.PropertyTestsvérifie exactement cette garde.