アサーションライブラリは、物事が正しいことを確認するツールです。
これにより、コードのテストがはるかに簡単になるため、数千のif
ステートメントを実行する必要がなくなります。
例(should.jsおよびNode.js assertモジュールを使用):
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);
}
テストフレームワークは、テストの整理と実行に使用されます。
モカとジャスミンは人気のある2つの選択肢です(実際、これらは似ています)。
例(ここでshould.jsでmochaを使用):
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;
});
});
テスト環境は、テストを実行する場所です。
Karmaは、エッジツールのようなものであり、多くの人がそうではないという点で、ちょっとしたツールです。 Karmaは、ブラウザー(デフォルトではヘッドレスWebKitブラウザーであるPhantomJS)内でユニットテストを実行することで機能し、ブラウザーベースのJavaScriptコードをテストできます。
MochaやJasmineなどのフレームワークは、ブラウザーとNode.jsの両方で機能し、通常はデフォルトでNodeになります。
テスト環境(またはテストランナー)は、すべてのテストを実行するものです。それらを起動し、結果を集約します。
テストフレームワークは、各テストの作成に使用するものです。たとえば、ジャスミンは次の構文を使用します
it('name of test', function() {
// do some tests
});
アサーションライブラリは、テスト結果の実際の検証を行うものです
it('name of test', function() {
assert x == 5 //pseudocode, the syntax will vary based on your asserting framework
});