smalljs$molHledat⌘ KDokumentacePlaygroundPorovnáníEkosystémO projektuCS
TestováníGetting StartedÚvodMyšlenkový modelZačínámeZ TypeScriptu do view.treeStruktura projektuNástrojeEssentialsInstalacePohledyStav a reaktivitaSměrováníVykreslováníTestováníNasazeníŘešení problémůDataNačítání datDatová schémataGiper BazaMoreVýkladní skříňZ React, Vue a SvelteKuchařkaAdvancedPluginyMetadata moduluOfflineGhost pohledyAboutČasté dotazyTýmVydáníAPI$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

Testování

Pohled $mol je funkcí svého stavu, a to mění podobu testu. Uživatelský scénář se zapisuje jako volání vlastních metod pohledu: nastavte rozepsaný text, spusťte akci, přečtěte, co by uživatel viděl.1app.draft( 'Milk' )2app.add()3$mol_assert_equal( app.item_title( 0 ), 'Milk' )Žádné selektory, žádný prohlížeč, žádný Playwright ani Cypress, žádné čekání na cokoli. Tentýž soubor vám navíc dává:Rychlost. Testy běží v Node v milisekundách; tisíc jich zabere zhruba minutu. node my/hello/-/node.test.js spustí ty pro jeden modul.Nulová konfigurace. hello.test.ts vedle komponenty builder posbírá a přeloží do -/node.test.js. Průběžná integrace s mam_build jej spustí a při neúspěšném testu shodí build.Záměna služeb přes kontext. Každý test dostane vlastní $ a všechno, po čem komponenta sáhne přes this.$.X, se zamění přiřazením testovací náhrady do toho $. To je ten důvod psát this.$.$mol_fetch a ne $mol_fetch: to první jde nahradit, to druhé ne.Mockovaný čas. Časovače vytvořené přes kontext netikají samy od sebe; $mol_after_mock_warp() spustí to, co je ve frontě.Skutečný DOM, když je potřeba. Bundl pro Node nese jsdom, takže dom_node() i querySelectorAll fungují ve stejném testovacím souboru.

Scénář přes metody pohledu

Vezměte seznam úkolů z Kuchařky: řetězec draft?, seznam items, akci add a akci delete. Jeho test žije v 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}Pár věcí, kterých si všimnout:
Upravit tuto stránku na GitHubuBylo to užitečné?AnoNePředchozíVykreslováníDalšíNasazení
Na této stránceScénář přes metody pohleduMockování službyČasPřes DOMCo test v Node nepokryjePraktické poznámkyDále
Type to search the documentation.