Aller au contenu

Tests

tilttek/stickers

Les 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 : chaque borne d'un autocollant, d'une transformation et de limites, les références d'image qui seraient des scripts ou des données en ligne refusées, les textes nettoyés et vérifiés, les détenteurs et les surfaces référencés par une adresse courriel refusés, les requêtes lues depuis du JSON et tout le reste refusé, les placements accordés, placés, refusés par chaque règle et chaque limite, déplacés, supprimés, masqués par un modérateur ou à la main et rétablis, les spectateurs qui désactivent les autocollants, les autocollants sortis du catalogue, la reprise et l'effacement, les événements, les stockages et les planches d'autocollants complétées par tilttek/sets. Dans le monodépôt, Infection maintient la bibliothèque à 100 % des mutants couverts.

tests/Fuzz/placement.php est la cible de fuzzing d'une requête de placement : tout texte se lit comme une requête dans les bornes absolues, que les limites d'un site acceptent ou refusent avec StickerRefused, ou est refusé avec InvalidSticker, jamais avec une autre exception. composer fuzz la lance.

tests/Benchmark/StickersBench.php mesure la surface la plus remplie qu'un site permet — 100 placements — montrée à un spectateur, et une requête de placement lue depuis du JSON.

Tester une application

Donnez à Stickers les adaptateurs en mémoire, une politique de surfaces avec les surfaces assignées, une horloge à vous et un répartiteur qui garde les événements :

$surfaces = new InMemorySurfacePolicy();
$surfaces->assign($profile, $member);
$stickers = new Stickers($catalog, new InMemoryOwnershipStore(), new InMemoryPlacementStore(), $surfaces, new Limits(), $frozenClock, $recordingDispatcher);