Nodeテストの概要
971 ワード
テストデータの分離(このようなデータが変更された場合、テストデータに影響を与えることなく、テストの清潔さを保証するとともに、開発のためにデータを準備する規範を提供する).
テストデータの種類がそろっている(各種データが正常に運行することを保証する)ユニットテストと統合テスト、エンドツーエンドテストを分離、テストポイントはできるだけ全面的で、1つのテストのexpectはできるだけ具体的に書くことができて、今回のテストの正確性を保証することができて、bug を減らすことができます
データの準備はできるだけテスト例に入れないでください.beforeに行って、コードの重複を避けると、コードの可読性が増加します.
同じ関数の各フローを横倒しにするには、app.get(',function(req,res){})のテストは、mock app={'get':function(url,cb){}}で、reqに必要なデータを用意し、resにおいてresの結果処理方法が遭遇する可能性のある小さな問題をmockできる.2つのdone()が同じ使用例で2回実行されるエラーが発生します(3)beforeEachに非同期がある場合、done()が位置を間違えると1つのテスト例で2回のエラーが発生しますmockテストプラグインrewire用法var jobsctrl=rewire(‘mockが必要なコード’);
既存のオブジェクトをmockのオブジェクトに置き換えると、実行中に、既存のオブジェクトを使用することなくmockのオブジェクトが呼び出されます.
テストデータの種類がそろっている(各種データが正常に運行することを保証する)ユニットテストと統合テスト、エンドツーエンドテストを分離、テストポイントはできるだけ全面的で、1つのテストのexpectはできるだけ具体的に書くことができて、今回のテストの正確性を保証することができて、bug を減らすことができます
データの準備はできるだけテスト例に入れないでください.beforeに行って、コードの重複を避けると、コードの可読性が増加します.
同じ関数の各フローを横倒しにするには、app.get(',function(req,res){})のテストは、mock app={'get':function(url,cb){}}で、reqに必要なデータを用意し、resにおいてresの結果処理方法が遭遇する可能性のある小さな問題をmockできる.2つのdone()が同じ使用例で2回実行されるエラーが発生します(3)beforeEachに非同期がある場合、done()が位置を間違えると1つのテスト例で2回のエラーが発生しますmockテストプラグインrewire用法var jobsctrl=rewire(‘mockが必要なコード’);
superagentMock = {
get: function() {
return this;
}
}
mock
jobsCtrl.__set__('superagent', superagentMock);
既存のオブジェクトをmockのオブジェクトに置き換えると、実行中に、既存のオブジェクトを使用することなくmockのオブジェクトが呼び出されます.