テストフレームワークMocha

2011 ワード

テスト可能なコードのいくつかの原則:
  • 単一職責:論理はできるだけ単一で、異なる機能
  • を分離する.
  • インタフェース抽象:インタフェースに対してテストを行い、具体的なコードの変化はインタフェーステスト
  • に影響しない.
  • 階層分離:コード階層化、階層別テスト
  • が可能
    テスト
  • BDD:行動駆動開発、テストロジック重視、常用describe, it, before, after
  • TDD:テスト駆動開発、テスト結果重視、常用suite, test, setup, teardown
  • mochaのデフォルトモードはBDDであり、TDDのテストを実行するにはパラメータ
  • を付ける必要がある.
    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
  • MochaJavaScriptのテストフレームワークであり、chaiは断言ライブラリであり、両者は
  • を組み合わせて使用すべきである.
  • Mochaによって提供するフックは、before(), after(), beforeEach(), afterEach()によって試験に用いることができる前処理および後処理などの
  • を含む.
  • demo
  • describe('save()', function() {
          it('should save without error', function(done) {
             ...
           done();
         });
    });
    // 
    // , done() , 
    // it done,
    

    アサーション・ライブラリ
  • 常用断言ライブラリ:should.js/expect.js/chai.js/better-assert/assert
  • should.js-BDDスタイル断言ライブラリ
  • foo.should.be()
    bar.should.have()
    
  • expect.js——BDDスタイル断言ライブラリ;should.jsによる
  • の簡略化
    expect(foo).to.be()
    expect(foo).to.eql()
    
  • chai-BDD/TDDデュアルモードで、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公式サイト