smalljs$molRechercher⌘ KDocsPlaygroundComparerÉcosystèmeÀ proposFR
TestsGetting StartedIntroductionModèle mentalDémarrageDe TypeScript à view.treeStructure d'un projetOutillageEssentialsInstallationVuesÉtat et réactivitéRoutageRenduTestsDéploiementDépannageDataRécupération de donnéesSchémas de donnéesGiper BazaMoreVitrineDe React, Vue et SvelteRecettesAdvancedPluginsMétadonnées de moduleHors-ligneVues fantômesAboutFAQÉquipeVersionsAPI$mol_button_major$mol_button_minor$mol_string$mol_number$mol_text$mol_paragraph$mol_list$mol_row$mol_link$mol_check$mol_switch$mol_select$mol_scroll$mol_page$mol_pick

Tests

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. node my/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.

Un scénario passant par les méthodes de la vue

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({3 4 'add an item and delete it'( $ ) {5 const app = $my_todo.make({ $ })6 7 app.draft( 'Milk' )8 app.add()9 $mol_assert_equal( app.items().length, 1 )10 $mol_assert_equal( app.item_title( 0 ), 'Milk' )11 $mol_assert_equal( app.draft(), '' )12 13 app.delete( 0 )14 $mol_assert_like( app.item_rows(), [] )15 },16 17 'blank draft adds nothing'( $ ) {18 const app = $my_todo.make({ $ })19 20 app.draft( ' ' )21 app.add()22 $mol_assert_like( app.items(), [] )23 },24 25 })26}
Modifier cette page sur GitHubÉtait-ce utile ?OuiNonPrécédentRenduSuivantDéploiement
Sur cette pageUn scénario passant par les méthodes de la vueSimuler un serviceLe tempsPar le DOMCe qu'un test Node ne couvre pasNotes pratiquesSuite
Type to search the documentation.