[英]NodeJS HTTPS API testing with mocha and super test -“DEPTH_ZERO_SELF_SIGNED_CERT”
I need to test an API served via HTTPS
with mocha
and super test
(the certificate are not expired) 我需要使用
mocha
和super test
通过HTTPS
提供的API(证书未过期)
This is a gist of the server : 这是服务器的要点:
...
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
});
and this is the route to be tested 这是要测试的路线
app.get('/hello',function (req, res) {
res.json(200);
});
I'm trying to test with this code in test/test.js
我正在尝试使用
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();
}
});
});
});
but the test FAILs
with the following error : 但测试
FAILs
,出现以下错误:
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)
While using plain HTTP
the test is PASSING
尽管使用普通
HTTP
该测试PASSING
just for everyone else who is also wondering what to do. 只为其他人也想知道该怎么做。 Add thison top of your test.js and you will be fine:
将它添加到test.js的顶部,你会没事的:
process.env.NODE_TLS_REJECT_UNAUTHORIZED = '0';
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.