Una vista $mol è una funzione del suo stato, e questo cambia l'aspetto di un test. Uno scenario utente si scrive come una serie di chiamate ai metodi della vista stessa: imposta la bozza, esegui l'azione, leggi ciò che l'utente vedrebbe.1app.draft('Milk')2app.add()3$mol_assert_equal(app.item_title(0),'Milk')Nessun selettore, nessun browser, niente Playwright né Cypress, nessuna attesa. Lo stesso file ti dà anche:Velocità. I test girano in Node in millisecondi; un migliaio richiede circa un minuto. nodemy/hello/-/node.test.js esegue quelli di un modulo.Zero configurazione. Un hello.test.ts accanto al componente viene raccolto dal builder e compilato in -/node.test.js. L'integrazione continua con mam_build lo esegue e fa fallire la build quando un test fallisce.Sostituzione dei servizi tramite il contesto. Ogni test riceve il proprio $, e tutto ciò che un componente raggiunge attraverso this.$.X si scambia assegnando un sostituto a quel $. È questa la ragione per scrivere this.$.$mol_fetch invece di $mol_fetch: il primo è sostituibile, il secondo no.Tempo simulato. I timer creati attraverso il contesto non scorrono da soli; $mol_after_mock_warp() esegue ciò che è in coda.Un DOM vero quando serve. Il bundle Node porta con sé jsdom, così dom_node() e querySelectorAll funzionano nello stesso file di test.