我正在使用supertest测试我的NodeJS应用程序。在我的app.js结束时,我公开了我的应用程序,所以我可以在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中
我正在为这个问题找到一个干净的解决方案。
答案 0 :(得分:0)
如果您将选项添加到模块中,则可以直接使用它,也可以使用rewire或sandboxed-module
之类的内容将其存储在测试中或者,您可以修改导出以接受选项作为参数,以便您可以将其作为参数使用,例如要求( '服务器')(配置)