2014-10-16 18 views
11

Sono nuovo per i test in generale e mi sono insegnato Jasmine. Sto cercando di capire le differenze tra l'esecuzione di Jasmine e jQuery-Jasmine in Karma rispetto all'esecuzione di Jasmine da solo. I tutorial per Jasmine non affrontano gli aggiustamenti che sono necessari se si utilizza Karma.standalone Jasmine vs Karma - Jasmine

Qualcuno può spiegarmi in che modo lo standard Karma-Jasmine differisce dai requisiti del Jasmine standalone? Richiede ancora un corridore spec, e la struttura del file è sempre la stessa?

Sto testando gli eventi DOM - un sacco di gestori di clic - e non capisco come deriderlo. Qualcuno può delineare alcune idee di base? Se voglio, ad esempio, controllare che un elemento p sia stato aggiunto a un div dopo che un utente fa clic su un pulsante, come funzionerebbe nella struttura e nelle funzioni dei file?

Grazie.

risposta

2

Non ho usato jasmine-jquery, ma per i test al gelsomino con Karma, Karma usa lo karma.conf.js per scoprire dipendenze esterne (come jasmine-jquery). In particolare lo files property. Alcuni esempi sono here Se esegui test con il gelsomino con SpecRunner.html di jasmine, devi assicurarti che tutto ciò che usi sia collegato nello SpecRunner.html con i tag di script.

Come per il test dei gestori di clic, una buona scommessa potrebbe essere semplicemente chiamare direttamente le funzioni del gestore di clic. Sembra che se vuoi qualcosa di più realistico, ti stai avvicinando ai test funzionali. Per questo potresti prendere in considerazione l'integrazione di nightmare per automatizzare le interazioni degli utenti come i clic, ecc.

8

Karma e Jasmine's SpecRunner.html sono entrambi test runner (aka spec runner). La differenza tra i due è che Karma è un'applicazione che gira fuori dal browser, mentre SpecRunner è un normale file HTML con una serie di riferimenti di script che si aprono in un browser.

Un test runner che vive al di fuori del browser consente di accedere una serie di vantaggi:

+0

thx che mi ha aiutato. @ user2943490 Usi mai karma senza uno strumento di costruzione? Come Grunt o Gulpjs piacerebbe capire con un esempio. - Cheers – jamie

+0

@jamie Karma è un modulo npm autonomo e non ha dipendenze da Grunt o Gulp (si esegue semplicemente Karma dalla console con 'karma start'), quindi lo si esegue senza alcuno strumento di generazione per impostazione predefinita. Se si intende * con * uno strumento di compilazione, sono disponibili plugin, ad esempio [gulp-karma] (https://www.npmjs.com/package/gulp-karma) – user2943490

Problemi correlati