Ich habe Erfahrung mit Jasmine und mag es ziemlich. Hat jemand Erfahrung mit Jasmine und Mocha, speziell für Rails? Ich frage mich, ob es sich lohnt, zu wechseln.
Antworten:
Ich habe sowohl in Jasmine als auch in Mocha getestet. Erstens ist das Umschalten relativ einfach. Das Grund- describe
und it
BDD-Muster ist identisch. Sie müssen die Art und Weise ändern, wie Sie Ihre Assertions ausführen, und für asynchrone Tests zu einer anderen Schnittstelle wechseln. Insgesamt sind sie vergleichbar.
Die asynchrone Schnittstelle von Mocha ist viel einfacher und konsistenter. Tests und Einstellungen können entweder synchron oder asynchron sein, was großartig ist. Dies und die Tatsache, dass TJ Holowaychuck ein epischer Code-Poet ist, sind gute Gründe, Mokka zu probieren.
Ich denke, die Jasmine Matcher sind leichter zu lesen und eleganter, besonders wenn sie mit dem Jasmin-JQuery-Plugin kombiniert werden. Mocha wird normalerweise mit einer separaten Bibliothek für Zusicherungen gepaart, häufig chai.js, wenn Sie Tests im Browser durchführen, oder should.js, wenn nur Knoten getestet werden. Ich bin mit Chais assert.equal()
Benutzeroberfläche zufrieden , aber der Jasmin-Stil expect($("#central_errors").html()).toContain("must provide a name");
erscheint mir eleganter. Ich bin kein Fan der Benutzeroberfläche im chai.js- expect(42).to.be.above(41)
Stil mit punktbegrenzten Sätzen, da sie akustisch nicht gut funktioniert.
Letztendlich ist dies eine persönliche Präferenzfrage und ich empfehle Ihnen dringend, nur einen Tag damit zu verbringen, Mokka-Tests anstelle von Jasmin zu schreiben und zu sehen, wie es sich anfühlt. Eine absolut lohnende Investition, selbst wenn Sie sich entscheiden, bei Jasmine zu bleiben, werden Sie dies von einem Ort aus aus erster Hand tun und sich anderer Möglichkeiten bewusst sein, um einige der Probleme zu lösen, die Jasmine löst. Ich habe es versucht und bleibe bei Mocha, auch weil das Wetten auf TJ eine gute Wette ist, aber Jasmine ist auch eine ausgereifte, solide und weit verbreitete Bibliothek.
Schauen Sie sich das Teebeutel-Projekt auf Github an. Sie können die Asset-Pipeline speziell zusammen mit Mocha, Jasmine oder QUnit verwenden.
https://github.com/modeset/teaspoon
Mocha ist eine ziemlich gute Bibliothek, aber ich benutze normalerweise Jasmine - für mich geht es hauptsächlich um Wissen und Erfahrung mit Jasmine, aber Mocha hat einige wirklich coole Funktionen - wie Sie wissen zu lassen, wenn Sie Dinge in den globalen Bereich bluten.
Ich dachte, es wäre erwähnenswert, das Projekt zu erwähnen, da es Ihnen speziell ermöglicht, mit beiden (in verschiedenen Suiten) herumzuspielen, damit Sie selbst entscheiden können.