Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript NodeJS测试-公开应用程序_Javascript_Node.js_Testing - Fatal编程技术网

Javascript NodeJS测试-公开应用程序

Javascript NodeJS测试-公开应用程序,javascript,node.js,testing,Javascript,Node.js,Testing,我正在用supertest测试我的NodeJS应用程序。在我的app.js结束时,我公开了我的app,因此我可以在test.js中使用它 /////////////////// // https options var options = { key: fs.readFileSync("./private/keys/Server.key"), cert: fs.readFileSync("./private/certs/Server.crt"), ca: fs.readF

我正在用supertest测试我的NodeJS应用程序。在我的app.js结束时,我公开了我的app,因此我可以在test.js中使用它

///////////////////
// https options
var options = {
    key: fs.readFileSync("./private/keys/Server.key"),
    cert: fs.readFileSync("./private/certs/Server.crt"),
    ca: fs.readFileSync("./private/ca/CA.crt"),
    requestCert: true,
    rejectUnauthorized: false
};

///////////////////
// start https server
var server = https.createServer(options, app).listen(app.get("port"), function(){
    console.log('Server listening on port ' + app.get('port'));
});

exports = module.exports = server;

当我在test.js中需要我的服务器时,选项的路径将导致错误,因为我的test.js位于目录./test/test.js中,而app.js位于./app.js中


我正在努力为这个问题找到一个干净的解决方案。

如果您将您的选项放入一个模块中,您可以直接使用它,也可以在测试中使用类似或的方式将其存根


或者,您可以修改导出以接受选项作为参数,以便您需要它,例如,require('server')(config)

将服务器代码包装在一个闭包中:function startServer(config){return https.createServer(options,app.listen)、app.get('port')、function(){console.log('server listening on port'+app.get('port');});}module.exports=startServer;