Une vue $mol est une fonction de son état, et cela change ce à quoi ressemble un test. Un scénario utilisateur s'écrit comme des appels aux méthodes de la vue elle-même : poser le brouillon, lancer l'action, lire ce que l'utilisateur verrait.1app.draft('Milk')2app.add()3$mol_assert_equal(app.item_title(0),'Milk')Pas de sélecteurs, pas de navigateur, pas de Playwright ni de Cypress, aucune attente. Le même fichier vous donne aussi :La vitesse. Les tests tournent dans Node en quelques millisecondes ; un millier d'entre eux prend environ une minute. nodemy/hello/-/node.test.js exécute ceux d'un module.Zéro configuration. Un hello.test.ts posé à côté du composant est ramassé par le builder et compilé dans -/node.test.js. L'intégration continue avec mam_build l'exécute et fait échouer la compilation quand un test échoue.La substitution de services par le contexte. Chaque test reçoit son propre $, et tout ce qu'un composant atteint via this.$.X se remplace en affectant un double de test à ce $. C'est la raison d'écrire this.$.$mol_fetch plutôt que $mol_fetch : le premier est remplaçable, le second non.Un temps simulé. Les minuteries créées par le contexte ne s'écoulent pas toutes seules ; $mol_after_mock_warp() exécute ce qui est en file d'attente.Un vrai DOM quand il vous en faut un. Le bundle Node embarque jsdom, donc dom_node() et querySelectorAll fonctionnent dans le même fichier de test.
Prenez la liste de tâches des Recettes : une chaîne draft?, une liste items, une action add et une action delete. Son test vit dans my/todo/todo.test.ts :1namespace ${2$mol_test({34'add an item and delete it'($){5const app=$my_todo.make({$})67app.draft('Milk')8app.add()9$mol_assert_equal(app.items().length,1)10$mol_assert_equal(app.item_title(0),'Milk')11$mol_assert_equal(app.draft(),'')1213app.delete(0)14$mol_assert_like(app.item_rows(),[])15},1617'blank draft adds nothing'($){18const app=$my_todo.make({$})1920app.draft(' ')21app.add()22$mol_assert_like(app.items(),[])23},2425})26}Modifier cette page sur GitHubÉtait-ce utile ?OuiNonPrécédentRenduSuivantDéploiementSur cette pageUn scénario passant par les méthodes de la vueSimuler un serviceLe tempsPar le DOMCe qu'un test Node ne couvre pasNotes pratiquesSuiteType to search the documentation.