Aller au contenu principal

Configuration

[Traduction Bêta Non Officielle]

Cette page a été traduite par PageTurner AI (bêta). Non approuvée officiellement par le projet. Vous avez trouvé une erreur ? Signaler un problème →

Marko Testing Library ne dépend d'aucun exécuteur de tests spécifique. Cependant, elle dépend de l'environnement de test. Ce package permet de tester à la fois les templates Marko côté serveur et côté client, en fournissant une implémentation légèrement différente optimisée pour chaque contexte. Cela est réalisé via un browser shim, exactement comme dans Marko.

Le browser shim est reconnu par de nombreux outils, notamment tous les bundlers et certains exécuteurs de tests.

Voici quelques exemples de configurations pour tester à la fois les composants serveur et navigateur avec des exécuteurs de tests populaires.

Jest

Pour que Jest comprenne les templates Marko, vous devez d'abord installer le preset @marko/jest. Cela permet d'importer vos templates Marko dans vos tests.

Jest propose une option browser qui lui indique de résoudre la version browser shim de tous les modules, comme mentionné précédemment.

Pour tester les composants rendus côté client, assurez-vous d'activer à la fois l'option browser et le preset : vous êtes alors prêt !

jest.config.js
module.exports = {
preset: '@marko/jest/preset/browser',
}

Pour les tests de composants rendus côté serveur, nous pouvons plutôt utiliser @marko/jest/preset/node comme preset Jest.

jest.config.js
module.exports = {
preset: '@marko/jest/preset/node',
}

Une configuration Jest peut aussi inclure plusieurs projects, ce qui permet de créer une configuration combinée pour les tests serveur et client, comme ceci :

jest.config.js
module.exports = {
projects: [
{
displayName: 'server',
preset: '@marko/jest/preset/node',
testRegex: '/__tests__/[^.]+\\.server\\.js$',
},
{
displayName: 'browser',
preset: '@marko/jest/preset/browser',
testRegex: '/__tests__/[^.]+\\.browser\\.js$',
},
],
}

Mocha

Mocha fonctionne également très bien pour tester des composants Marko. Cependant, Mocha ne comprend pas les browser shims, ce qui signifie qu'il ne peut fonctionner nativement qu'avec les composants Marko côté serveur.

Pour exécuter des tests Marko côté serveur avec mocha, vous pouvez simplement utiliser la commande suivante :

mocha --require marko/node-require

Cela active le Marko require hook et vous permet d'importer directement les templates Marko côté serveur dans vos tests.

Pour les tests côté client de vos composants avec Mocha, vous utiliserez souvent un bundler pour compiler vos tests (cela résoudra correctement les browser shims mentionnés ci-dessus), puis vous pourrez charger ces tests dans un contexte navigateur.