API を交換する前に、(API を使用する) クライアントを統合テストで保護して、新しい API が古い API と同じ結果を提供し、クライアントが引き続き期待どおりに動作することを確認したいと考えています。そのため、それぞれのクライアント メソッドに対していくつかの統合テストを作成しました。これらのクライアント メソッドは、リクエストを使用して API をクエリします。
次に、モカを使用してテストを実行しています。テスト内では、リクエストがまったく実行されていないように見えます。
私の問題を示す簡単な例を作成しました。
var request = require('request');
var assert = require('chai').assert;
describe('test', function(){
it('request-test', function(done){
var responseBody;
request('http://www.google.com', function (error, response, body) {
if (!error && response.statusCode == 200) {
console.log(body)
responseBody = body;
}
});
done();
assert.notEqual(responseBody, undefined);
});
});
この例では、console.log は実行されず、テストは常にアサーションで失敗します。