Tests
tilttek/wargame-armyLes tests de la bibliothèque
composer install
vendor/bin/phpunit --no-configuration tests
La suite unitaire, sous tests/Unit, s'exécute sans réseau ni base de données : les formes des codes, des versions et
des noms, chaque borne d'un catalogue et d'une liste, les catalogues et les listes écrits puis relus avec tout le reste
refusé, les points avec figurines et options, chaque règle du validateur et son message, les comptes et les parts de
points à leurs bornes, les contraintes propres à l'application, et le texte et le HTML échappé de l'exportation. Dans le
monodépôt, Infection maintient la bibliothèque à 100 % des mutants couverts. Le catalogue des tests est inventé.
tests/Fuzz/army-catalogue.php et tests/Fuzz/army-list.php sont les cibles de fuzzing d'un catalogue et d'une
liste : tout texte se lit comme un catalogue ou une liste qui s'écrit de nouveau à l'identique, ou est refusé avec son
exception, jamais avec une autre ; la liste est ensuite vérifiée et exportée. composer fuzz les exécute.
tests/Benchmark/WargameArmyBench.php mesure la plus grande liste — 20 détachements de 200 unités avec dix options
chacune — validée selon un catalogue de 2 000 unités et de 200 contraintes, son exportation HTML, et le catalogue lu
depuis du JSON.
Tester une application
Donnez au validateur un fournisseur en mémoire d'un catalogue inventé :
$validator = new ArmyValidator(new InMemoryCatalogueProvider(Catalogue::fromJson($inventedCatalogue)));