smalljs$molPesquisar⌘ KDocsPlaygroundCompararEcossistemaSobrePT
TestesGetting StartedIntroduçãoModelo mentalPrimeiros passosDe TypeScript para view.treeEstrutura do projetoFerramentasEssentialsInstalaçãoViewsEstado e reatividadeRoteamentoRenderizaçãoTestesDeploySolução de problemasDataBusca de dadosEsquemas de dadosGiper BazaMoreVitrineDe React, Vue e SvelteLivro de receitasAdvancedPluginsMetadados de móduloOfflineVistas fantasmaAboutFAQEquipeLançamentosAPI$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

Testes

Uma view $mol é uma função do seu estado, e isso muda a cara de um teste. Um cenário de usuário se escreve como chamadas aos próprios métodos da view: defina o rascunho, rode a ação, leia o que o usuário veria.1app.draft( 'Milk' )2app.add()3$mol_assert_equal( app.item_title( 0 ), 'Milk' )Sem seletores, sem navegador, sem Playwright nem Cypress, sem esperar por nada. O mesmo arquivo ainda te dá:Velocidade. Os testes rodam em Node em milissegundos; mil deles levam cerca de um minuto. node my/hello/-/node.test.js roda os de um módulo.Zero configuração. Um hello.test.ts ao lado do componente é recolhido pelo builder e compilado em -/node.test.js. A integração contínua com mam_build o executa e derruba o build quando um teste falha.Substituição de serviços pelo contexto. Cada teste ganha seu próprio $, e tudo o que um componente alcança por this.$.X se troca atribuindo um dublê a esse $. É por isso que se escreve this.$.$mol_fetch em vez de $mol_fetch: o primeiro é substituível, o segundo não.Tempo simulado. Temporizadores criados pelo contexto não correm sozinhos; $mol_after_mock_warp() executa o que estiver na fila.Um DOM de verdade quando você precisa. O bundle Node carrega o jsdom, então dom_node() e querySelectorAll funcionam no mesmo arquivo de teste.

Um cenário pelos métodos da view

Pegue a lista de tarefas do Livro de receitas: uma string draft?, uma lista items, uma ação add e uma ação delete. O teste dela vive em 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}
Editar esta página no GitHubIsto foi útil?SimNãoAnteriorRenderizaçãoPróximoDeploy
Nesta páginaUm cenário pelos métodos da viewSubstituir um serviço por um mockO tempoPelo DOMO que um teste em Node não cobreNotas práticasPróximo
Type to search the documentation.