Ho esperienza con Jasmine e mi piace un bel po '. Qualcuno ha esperienza con Jasmine e Mocha, in particolare per Rails? Mi chiedo se valga la pena passare a.Jasmine vs. Mocha Test su JavaScript per Rails 3.1+
risposta
Ho eseguito test sia in Jasmine che in Mocha. Innanzitutto, il passaggio è relativamente semplice. Il modello base describe
e it
BDD è identico. Dovrai modificare le tue asserzioni e passare a un'interfaccia diversa per i test asincroni. Nel complesso sono comparabili.
L'interfaccia asincrona di Mocha è molto più semplice e coerente. Test e setup possono essere sincroni o asincroni, il che è fantastico. Questo, oltre al fatto che TJ Holowaychuck è un poeta epico, sono buoni motivi per provare Mocha.
Penso che gli accoppiamenti Jasmine siano più facili da leggere e più eleganti, specialmente se abbinati al plugin jasmine-jquery. Mocha è solitamente associato a una libreria separata per asserzioni, spesso chai.js se si sta eseguendo test in-browser o should.js per il solo test del nodo. Sono felice dell'interfaccia di chai assert.equal()
, ma lo stile Jasmine expect($("#central_errors").html()).toContain("must provide a name");
mi sembra più elegante. Non sono un fan dell'interfaccia di stile chai.js expect(42).to.be.above(41)
con frasi delimitate da punti perché non funziona bene a livello audio.
In definitiva, questa è una domanda di preferenza personale e ti incoraggio vivamente a passare solo un giorno o più a scrivere test di Moka invece di Jasmine e vedere come ci si sente. Un investimento davvero utile, anche se decidi di restare con Jasmine lo farai da un luogo di conoscenza di prima mano e avrai consapevolezza di altri modi per risolvere alcuni dei problemi che Jasmine risolve. L'ho provato e mi sto attenendo a Mocha in parte perché scommettere su TJ è una buona scommessa, ma Jasmine è anche una libreria matura, solida e ampiamente adottata.
Controlla il progetto Teabag su github. Ti consente in particolare di utilizzare la pipeline di asset insieme a Mocha, Jasmine o QUnit.
https://github.com/modeset/teaspoon
Mocha di una bella grande biblioteca, ma io di solito usare Jasmine - per me è principalmente di conoscenze ed esperienze con Jasmine, ma Mocha ha alcune caratteristiche davvero interessanti - come ti permette di sapere quando sei sanguinare le cose nell'ambito globale.
Dato che vale la pena menzionare il progetto perché consente specificamente di giocare con entrambi (in diverse suite) in modo da poter decidere per te.
- 1. Jasmine (mocha) test "it" nidificati
- 2. Karma vs framework di test Jasmine, Mocha, QUnit
- 3. JSpec vs Jasmine vs QUnit per JavaScript e jQuery test in Rails
- 4. Bootstrap Bourbon vs Twitter per Rails 3.1
- 5. Capistrano per Rails 3.1
- 6. Culerity vs selenio per Javascript Test in Rails
- 7. standalone Jasmine vs Karma - Jasmine
- 8. Javascript JsTestDriver Jasmine & Jasmine-jquery
- 9. Test di avvisi javascript con Jasmine
- 10. Mocha: asincrono vs sync
- 11. Jasmine CI e Cattura Test uscita Risultato su Jenkins Server
- 12. Test di loop Mocha?
- 13. Test delle viste JavaScript in Rails
- 14. JavaScript: test vs exec
- 15. test parametrizzati con Mocha
- 16. Montare un motore su sottodominio Rails 3.1
- 17. Test di javascript con Mocha: come posso utilizzare console.log per eseguire il debug di un test?
- 18. Test di Javascript con mocha il file html5 api?
- 19. Rails 3.1 Percorsi API
- 20. Rails 3.1 plugin gem, fittizio test app, rspec
- 21. Come registrare un test Mocha non riuscito su una Promessa
- 22. Supporto per dispositivi compatibili con Mocha
- 23. Organizzazione test utilizzando Mocha & Should.js
- 24. Test promessa catene con Mocha
- 25. Rails 3.1 Ransack HABTM
- 26. Caricamento di file simulati nei test di controller Rails 3.1
- 27. Test per l'istanza di utilizzo di Jasmine
- 28. Rails 3.1 Mongo has_secure_password
- 29. Come testare percorsi in un motore montabile su Rails 3.1
- 30. Test del codice javascript lato client con Jasmine e node.js
Grazie Peter! Proprio il tipo di osservazioni che stavo cercando :) – LupineDev
Ehi Peter, ottima recensione! Solo per aggiungere, con Chai, è possibile ottenere anche un'interfaccia in stile Jasmine ("bdd"): http://chaijs.com/code/expect.html In effetti è possibile combinarlo con l'assert (" tdd ") interfaccia. Analogamente a jasmine-jquery, c'è anche un plugin chai-jquery, anche se è piuttosto nuovo. –
Yup sia chai che mocha hanno più interfacce. Come detto sopra, non mi piace l'interfaccia chai bdd/expect perché non trovo tutti quei punti utili. –