使用mocha和超级testing的NodeJS HTTPS APItesting – “DEPTH_ZERO_SELF_SIGNED_CERT”
我需要使用mocha
和super test
来testing通过HTTPS
提供的API(证书未过期)
这是服务器的要点:
... var app = express(); var _options = { key: fs.readFileSync('my-key.pem');, cert: fs.readFileSync('my-cert.pem') }; // Start HTTPS server https.createServer(_options, app).listen(app.get('port'), app.get('ip'), function () { // ok or not logs });
这是要testing的路线
app.get('/hello',function (req, res) { res.json(200); });
我试图用这个代码在test/test.js
中test/test.js
var supertest = require('supertest'), api = supertest('https://localhost:3000'); describe('Hello test', function () { it('hello', function (done) { api.get('/hello') .expect(200) .end(function (err, res) { if (err) { done(err); } else { done(); } }); }); });
但testingFAILs
,出现以下错误:
enter Error: DEPTH_ZERO_SELF_SIGNED_CERT at SecurePair.<anonymous> (tls.js:1349:32) at SecurePair.EventEmitter.emit (events.js:92:17) at SecurePair.maybeInitFinished (tls.js:962:10) at CleartextStream.read [as _read] (tls.js:463:15) at CleartextStream.Readable.read (_stream_readable.js:320:10) at EncryptedStream.write [as _write] (tls.js:366:25) at doWrite (_stream_writable.js:219:10) at writeOrBuffer (_stream_writable.js:209:5) at EncryptedStream.Writable.write (_stream_writable.js:180:11) at write (_stream_readable.js:573:24) at flow (_stream_readable.js:582:7) at Socket.pipeOnReadable (_stream_readable.js:614:5) at Socket.EventEmitter.emit (events.js:92:17) at emitReadable_ (_stream_readable.js:408:10) at emitReadable (_stream_readable.js:404:5) at readableAddChunk (_stream_readable.js:165:9) at Socket.Readable.push (_stream_readable.js:127:10) at TCP.onread (net.js:526:21)
在使用普通的HTTP
,testing是通过的
只是为了其他人也想知道该怎么做。 添加这个test.js的顶部,你会没事的:
process.env.NODE_TLS_REJECT_UNAUTHORIZED = '0';