node.jsで、スーパーエージェントとノックを連携させるのに問題があります。スーパーエージェントの代わりにリクエストを使用すると、完全に機能します。
スーパーエージェントがモックデータの報告に失敗する簡単な例を次に示します。
var agent = require('superagent');
var nock = require('nock');
nock('http://thefabric.com')
.get('/testapi.html')
.reply(200, {yes: 'it works !'});
agent
.get('http://thefabric.com/testapi.html')
.end(function(res){
console.log(res.text);
});
resオブジェクトには'text'プロパティがありません。何かがうまくいかなかった。
リクエストを使用して同じことを行うと、次のようになります。
var request = require('request');
var nock = require('nock');
nock('http://thefabric.com')
.get('/testapi.html')
.reply(200, {yes: 'it works !'});
request('http://thefabric.com/testapi.html', function (error, response, body) {
if (!error && response.statusCode == 200) {
console.log(body)
}
})
モックされたコンテンツは正しく表示されます。
テストではスーパーエージェントを使用したので、それを使い続けたいと思います。誰かがそれを機能させる方法を知っていますか?
どうもありがとう、ザビエル