サーバーを起動するために start() 関数をエクスポートする server.js モジュールがあります。このモジュールが必要で、index.js からサーバーを起動します。
child_process.fork 呼び出しでサーバーを起動することにより、server.js モジュールを分離して (Mocha を使用して) 単体テストしようとしていますが、エクスポートされた開始関数を呼び出す方法がわかりません。
現在、「index.js」をfork呼び出しに渡すことで機能していますが、オプションをserver.jsモジュールに渡す方法がわかりません(たとえば、ポート番号を送信します)。
これが私のserver.jsと、index.jsを使用する単体テストです(server.start()のみを必要とし、呼び出します)。
環境変数を渡すことができるように、server.js を直接テストしたいと思います。
====編集====
サーバーを別のプロセスで起動することで何が得られると思っていたのかわかりません。
before ブロックでサーバーを起動するようにテストを変更しました。
提案を歓迎します。
var assert = require("assert");
var request = require("request");
describe("Server", function(){
var server;
var port = 4008;
before(function(done){
server = require("../server");
server.start(port);
done();
});
it('listens on specified port (' + port + ')', function(done){
request('http://localhost:' + port, function(err, res, body){
assert(res.statusCode == 200);
done();
});
});
});