我有一个 server.js 模块,它导出一个 start() 函数来启动我的服务器。我需要这个模块并从 index.js 启动服务器。
我正在尝试通过在 child_process.fork 调用中启动服务器来单独(使用 Mocha)对 server.js 模块进行单元测试,但我看不到如何调用导出的启动函数。
它目前通过将 '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();
});
});
});