| Propriété | Valeur |
|---|---|
| Catégorie | Usage (JustDummies.Usage) |
| Sévérité | 🟠 Avertissement |
| Activée par défaut | Oui |
Any.OneOf prend params T[]. Un unique argument List<Order> lie donc T = List<Order> et non Order : l’ensemble contient un élément, chaque tirage retourne la même liste, et le choix arbitraire que le test prétend faire ne varie jamais. Rien n’échoue — l’appel compile, les tirages réussissent, et le test est simplement moins arbitraire qu’il ne se lit.
L’ADR-0011 ouvre un nouvel onglet a consigné cela comme un risque accepté, « atténué par le fait qu’ElementOf est le chemin documenté ». Cette règle transforme cette atténuation d’un espoir documentaire en vérification.
Any.ElementOf est le point d’entrée qui prend une collection et tire parmi ses éléments.
Non conforme
List<Order> orders = ...;
IAny<List<Order>> pool = Any.OneOf(orders); // JD013 : un ensemble d'un seul élément — chaque tirage rend la même liste
Conforme
List<Order> orders = ...;
IAny<Order> pool = Any.ElementOf(orders);
Ce qui n’est pas signalé
Any.OneOf<List<Order>>(orders)— un argument de type explicite énonce l’intention inverse, et c’est la façon documentée de dire « un ensemble dont l’unique élément est cette collection ».- Une
stringseule, qui estIEnumerable<char>: un ensemble d’une chaîne est ordinaire. - Un tableau. Un tableau satisfait
paramsdirectement :Test déjà inféré comme le type d’élément et l’appel est correct tel quel. - Deux arguments ou plus, qui ne peuvent pas produire la confusion.