私はnode.jsを初めて使用し、ポート5000で実行される小さなWebアプリケーションを作成することから始めました。カールを介して)、すべて正常に動作し、私は応答を返す。 i「はBDD使用しての誓い」をしながら、HTTPクライアントとそれを接続しようとしたときには、テストが壊れ、結果のメッセージは、ここでは、応答が定義されていないhttpクライアントを使用して接続した場合のNode.jsレスポンス
✗
/GET
✗ should respond with 404
***TypeError: Cannot read property 'status' of undefined***
at ClientRequest.<anonymous> (/home/sunil/work/nodal_programs/subscription-engine-processor/sample-test.js:13:23)
at runTest (/home/sunil/work/nodal_programs/subscription-engine-processor/node_modules/vows/lib/vows.js:132:26)
at EventEmitter.<anonymous> (/home/sunil/work/nodal_programs/subscription-engine-processor/node_modules/vows/lib/vows.js:85:17)
at EventEmitter.<anonymous> (events.js:67:17)
at EventEmitter.emit (/home/sunil/work/nodal_programs/subscription-engine-processor/node_modules/vows/lib/vows.js:236:24)
at /home/sunil/work/nodal_programs/subscription-engine-processor/node_modules/vows/lib/vows/context.js:31:52
at ClientRequest.<anonymous> (/home/sunil/work/nodal_programs/subscription-engine-processor/node_modules/vows/lib/vows/context.js:46:29)
at ClientRequest.<anonymous> (events.js:67:17)
at ClientRequest.emit (/home/sunil/work/nodal_programs/subscription-engine-processor/node_modules/vows/lib/vows.js:236:24)
at HTTPParser.onIncoming (http.js:1225:11)
✗ Errored » 1 errored (0.012s)
ました。
body = "Not found";
response.writeHead(404, {'Content-Type': 'text/plain', 'Content-Length': body.length});
response.end(body);
これは、アプリケーション内での応答方法です。私は、ヘッダーのcontent-typeとcontent-lengthを設定しました。 問題の原因を教えてもらえますか?
私が書いた誓いはこれです。
var http = require('http'),
vows = require('vows'),
assert = require('assert');
vows.describe("notification").addBatch({
"/GET": {
topic: function() {
http.get({host: 'localhost', port: 1337, path: '/', method: 'GET'}, this.callback) ;
},
'should respond with 404': function(e,res) {
assert.equal(res.status, 404);
}
}
}).run();
テストコードを投稿できますか? – nicolaskruchten