テストフレームワークMocha
2011 ワード
テスト可能なコードのいくつかの原則:単一職責:論理はできるだけ単一で、異なる機能 を分離する.インタフェース抽象:インタフェースに対してテストを行い、具体的なコードの変化はインタフェーステスト に影響しない.階層分離:コード階層化、階層別テスト が可能
テスト BDD:行動駆動開発、テストロジック重視、常用 TDD:テスト駆動開発、テスト結果重視、常用 mochaのデフォルトモードはBDDであり、TDDのテストを実行するにはパラメータ を付ける必要がある.
MochaとJasmineの比較 を使用することが多い. 両方の機能のオーバーライド範囲は、以下のように大まかに表すことができます.
Mocha を組み合わせて使用すべきである.、 を含む. demo
アサーション・ライブラリ常用断言ライブラリ: should.js-BDDスタイル断言ライブラリ expect.js——BDDスタイル断言ライブラリ; の簡略化 chai-BDD/TDDデュアルモードで、 をサポートします.
demoアドレス
参考記事推奨:How to correctly unit test Express serverはMochaとChaiを使用してNodeをテストします.js応用テストフレームワークMochaインスタンスチュートリアル初識mocha in NodeJSテスト利器mocha HTTPサーバーテストライブラリsupertest Mocha公式サイト
テスト
describe, it, before, after
suite, test, setup, teardown
mocha -u tdd test.js
MochaとJasmineの比較
Mocha
自体の集積度が高くない(断言、spy、非同期などはない)Chai,Sinon
などのライブラリに合わせてJasmine
集積度が高く、BBD、spyを持参し、便利な非同期サポート(2.0)Jasmine
機能完備、Mocha
柔軟自由Jasmine(2.x) === Mocha + Chai + Sinon - mockserver
Mocha
Mocha
はJavaScript
のテストフレームワークであり、chai
は断言ライブラリであり、両者はMocha
によって提供するフックは、before(), after(), beforeEach(), afterEach()
によって試験に用いることができる前処理および後処理などのdescribe('save()', function() {
it('should save without error', function(done) {
...
done();
});
});
//
// , done() ,
// it done,
アサーション・ライブラリ
should.js/expect.js/chai.js/better-assert/assert
foo.should.be()
bar.should.have()
should.js
によるexpect(foo).to.be()
expect(foo).to.eql()
should / expect / assert
の3つのスタイルの断言ライブラリassert: assert.equal(something, someting)
should: something.should.equal(something)
expect: expect(something).to.equal(someting)
demoアドレス
参考記事推奨:How to correctly unit test Express serverはMochaとChaiを使用してNodeをテストします.js応用テストフレームワークMochaインスタンスチュートリアル初識mocha in NodeJSテスト利器mocha HTTPサーバーテストライブラリsupertest Mocha公式サイト