Skip to content

Refactor pour PHP 8.2 : migration des tests SimpleTest en PHPUnit

marcimat a demandé de fusionner gh-73f2d40a/8/unknown/refs/pull/8/head vers master

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)

Rapports de requête de fusion

Chargement en cours