Assertion Bibliotheken Werkzeuge sind, um zu überprüfen, dass die Dinge richtig sind.
Dies macht es viel einfacher, Ihren Code zu testen, so dass Sie nicht Tausende von if
Aussagen machen müssen.
Beispiel (unter Verwendung von should.js und Node.js behauptet Modul):
var output = mycode.doSomething();
output.should.equal('bacon'); //should.js
assert.eq(output, 'bacon'); //node.js assert
// The alternative being:
var output = mycode.doSomething();
if (output !== 'bacon') {
throw new Error('expected output to be "bacon", got '+output);
}
Testing Frameworks verwendet werden, um Tests zu organisieren und durchzuführen.
Mokka und Jasmin sind zwei populäre Wahlen (und sie sind wirklich irgendwie ähnlich).
Beispiel (unter Verwendung von Mokka mit should.js hier):
describe('mycode.doSomething', function() {
it ('should work', function() {
var output = mycode.doSomething();
output.should.equal('bacon');
});
it ('should fail on an input', function() {
var output = mycode.doSomething('a input');
output.should.be.an.Error;
});
});
Testumgebungen sind die Orte, an denen Sie Ihre Tests laufen.
Karma ist ein bisschen ein Randfall, in dem Sinne, dass es ein einmaliges Werkzeug ist, nicht viele mögen es. Karma arbeitet mit Unit-Tests innerhalb von Browsern (standardmäßig PhantomJS, ein kopfloser WebKit-Browser), um browserbasierten JavaScript-Code zu testen.
Frameworks wie Mocha und Jasmine funktionieren sowohl im Browser als auch mit Node.js und standardmäßig als Node.
Um die Dinge noch komplexer zu machen, gibt es auch [Selenium Webdriver Node.JS Clients] (http://www.slant.co/topics/2814/viewpoints/2/~what-are-the-best-node -js-selen-webdriver-client-libraries-bindings), von denen einige Jasmin-, Gurken- oder Moca + Chai-Tests in ihnen ausführen können (zB WebdriverIO). –
Die Frage ist nicht gut geschrieben, da das OP Beispiele für die drei Dinge gibt, die sie klären wollen, und sie haben sogar einen Link für weitere Informationen gegeben. Es ist fast eine eigene Antwort auf den Titel der Frage. Ich gehe jedoch davon aus, dass das OP angesichts der bereitgestellten Informationen eine detailliertere Untergliederung wünscht. Aber es würde helfen zu wissen, welche Teile für das OP noch unklar sind. – redfox05