Refactor pour PHP 8.2 : migration des tests SimpleTest en PHPUnit
Refs: #7 (closed)
- Quelques corrections pour PHP 8.2 (éviter des deprecated)
- Migrer tous les tests qui utilisaient SimpleTest en PHPUnit, et pour ce faire, en créant une classe
Spip\Core\Testing\SquelettesTestCase
qui dispose d’assertions spécifiques pour calculer des codes de squelettes ou des fichiers de squelettes.
Par exemple
$this->assertOkCode('#VAL{ok}');
$this->assertOkSquelette(__DIR__ . '/data/mon_squelette.html);
- Création d’une classe
Spip\Core\Testing\Templating
et d’un loader qui permet de calculer des squelettes ou codes de squelettes
Loader File
// Templating avec loader fichier
$templating = new Templating(new FileLoader());
// ou
$templating = Templating::fromFile();
$file = __DIR__ . '/data/mon_squelette.html';
// Prépare le fichier
$template = $templating->load($file);
// Exécute le rendu avec un contexte
$content = $template->render(['lang' => 'en']);
// Peut se faire en 1 étape
$content = $templating->render($file, 'lang' => 'en']);
Loader String
// Templating avec loader string
$templating = new Templating(new StringLoader());
// ou
$templating = Templating::fromString();
$code = 'Mon beau squelette : #SQUELETTE';
// Prépare le fichier
$template = $templating->load($code);
// Exécute le rendu avec un contexte
$content = $template->render(['lang' => 'en']);
// Peut se faire en 1 étape
$content = $templating->render($code, 'lang' => 'en']);
Cache
Les codes de squelettes créent des caches dans tmp/cache/Tests
.
Les calculs ne sont pas actualisés lors des tests (pas de var_mode=calcul automatique, mais ça serait peut être à prévoir, du moins en option peut être. — sinon il suffit de désactiver le cache le temps de préparer ses tests corrects)