【发布时间】:2017-04-10 10:23:52
【问题描述】:
无论我的服务器实际返回什么,当我断言 response.body 时,Chai 总是给我这个异常:
未捕获的 AssertionError:预期 {} 与“测试”完全相等
这是我的测试:
const chai = require('chai');
const chaiHttp = require('chai-http');
const server = require('./test-server');
const should = chai.should();
chai.use(chaiHttp);
describe('GET /test', () => {
it('it should give test result', (done) => {
chai.request(server)
.get('/test')
.end((err, res) => {
console.log(err); // outputs null
console.log(res); // outputs normal-looking response
res.body.should.be.eql('test');
done();
});
});
});
这是我的服务器(test-server.js):
const http = require('http');
const server = http.createServer(function (request, response) {
response.writeHead(200, {"Content-Type": "text/plain"});
response.end('test');
});
module.exports = server;
server.listen(process.env.PORT || 8000);
console.log("Server running at http://localhost:8000/");
我做错了什么?
【问题讨论】:
-
您的响应正文返回对象,并且您将其与字符串相等
-
@p0k8_ 那我该怎么办?如何断言来自服务器的响应? (这是字符串,不是对象)
-
不确定,但您可能需要
res.text.should.be.eql('test');