メッセージとその他の結果を返す外部サービスにデータを投稿する単純なモジュールを作成しました。
これを Mocha でテストしようとしていますが、戻り値にアクセスする方法を理解するのが難しいと感じています。
コンソールに記録されているのを見ることができますが、変数として設定する方法がわかりません。お気づきかもしれませんが、私は初心者の javacripter です。私はそれが簡単だと確信しています、私は方法を見ることができません。
私のモジュール:
module.exports = {
foo: function(id,serial) {
var querystring = require('querystring');
var http = require('http');
var fs = require('fs');
var post_data = querystring.stringify({
'serial' : serial,
'id': id
});
var post_options = {
host: 'localhost',
port: '8080',
path: '/api/v1/status',
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
'Content-Length': post_data.length
}
};
var post_req = http.request(post_options, function(res) {
res.setEncoding('utf8');
res.on('data', function (chunk) {
console.log(chunk);
return chunk;
});
});
post_req.write(post_data);
post_req.end();
}
}
そして、私はこれを次のように呼び出しました:
describe('Functions and modules', function() {
it('does some shizzle', function(done) {
var tools = require('../tools');
chunk = '';
id = 123;
serial =456;
tools.foo(id,serial);
chunk.should.equal.......
});
});
私は基本的に tools.foo(id,serial) から返されたメッセージが必要ですが、チャンクは空白のものよりも空白です。
私の端末では、次のようなものが表示されます。
{"message":"This device is still in use","live":"nop"}