我目前正在为将要在此处发送HTTP请求的Node.js应用程序制作测试程序。 我使用Chai创建测试,使用Express来模拟服务器。
这是我的问题:当我运行以下请求时,一切正常......但如果我多次运行它,我会随机出错。 它来了又去,似乎与我的代码中的任何内容都没有联系,所以我甚至不知道在哪里看。
以下是我的要求:
let chai = require('chai');
let chaiHttp = require('chai-http');
let fs = require('fs');
let should = chai.should();
chai.use(chaiHttp);
describe("Test external service 'TEST'", function () {
it('POST /testCheck', function testCheck(done) {
chai.request('http://servicetest:8888')
.post('/testCheck')
.attach('files', "server.js")
.end(function (err, res) {
if (err) {
console.log(err)
done();
} else {
res.should.have.status(202);
done();
}
})
})
})
工作时:
Test external service 'TEST'
✓ POST /testCheck (51ms)
1 passing (60ms)
随机,我明白了:
Test external service 'TEST'
1) POST /testCheck
0 passing (50ms)
1 failing
1) Test external service 'TEST'
POST /testCheck:
Error: write EPIPE
at _errnoException (util.js:1031:13)
at WriteWrap.afterWrite [as oncomplete] (net.js:873:14)
以下是另一方的代码:
var express = require('express');
var app = express();
app.post('/testCheck', function(req, res) {
if ((req.get('content-type') != undefined) && (req.get('content-length') != undefined)) {
res.status(202);
res.end();
} else {
res.status(400);
res.end();
}
});
console.log("Server test started");
app.listen(8888);
我绝对不明白发生了什么,并希望在得到其他任何内容之前解决这个问题。
答案 0 :(得分:-1)
只需按照文档进行操作即可!
https://github.com/chaijs/chai-http#setting-up-requests
.attach('files', fs.readFileSync('server.js'), 'server.js')