0

スーパーテストで 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 にあるためです。

この問題の明確な解決策を見つけるのに苦労しています。

4

1 に答える 1

0

オプションをモジュールにすると、それを直接使用するか、rewiresandboxed-moduleなどを使用してテストでスタブすることができます。

または、オプションをパラメータとして受け入れるようにエクスポートを変更して、require('server')(config) などでそれを要求することもできます。

于 2013-11-06T14:57:03.760 に答える