Javascript ChaiJS:不能导致测试失败
我试图让我的第二个规范失败,但它不会。我正在从服务器返回一个状态码203,测试将其作为203接收,但由于某些原因,expect块仍然不会抛出错误。这是怎么回事 规格js app.js var express=需要“express”; var-app=expressJavascript ChaiJS:不能导致测试失败,javascript,mocha.js,chai,Javascript,Mocha.js,Chai,我试图让我的第二个规范失败,但它不会。我正在从服务器返回一个状态码203,测试将其作为203接收,但由于某些原因,expect块仍然不会抛出错误。这是怎么回事 规格js app.js var express=需要“express”; var-app=express app.get('/pull', function (req, res) { res.send('works'); }); app.post('/push', function(req, res) { res.status(
app.get('/pull', function (req, res) {
res.send('works');
});
app.post('/push', function(req, res) {
res.status(203);
res.send('works');
});
var server = app.listen(3000, function () {
var host = server.address().address;
var port = server.address().port;
console.log('Example app listening at port', host, port);
});
您需要将done传递到it块中,而不是描述
这很简单。传递给两个it调用的回调应该是函数完成{…而不是函数{…现在,Mocha认为这些测试是同步的,所以它不会等待它们完成 您传递来描述的回调采用done参数,但这是无用的
app.get('/pull', function (req, res) {
res.send('works');
});
app.post('/push', function(req, res) {
res.status(203);
res.send('works');
});
var server = app.listen(3000, function () {
var host = server.address().address;
var port = server.address().port;
console.log('Example app listening at port', host, port);
});
var chai = require('chai');
var expect = chai.expect;
var request = require('request');
var localServerUri = 'http://127.0.0.1:3000/';
describe('server http routing', function(){
it('should receive a status code 200 after GET request', function(done) {
request(localServerUri + 'pull', function (error, response, body) {
expect(response.statusCode).to.be.at(200);
done();
});
});
it('should receive a status code 201 after POST request', function(done) {
request.post({url:localServerUri + 'push', form: {key:'value'}}, function(err, response, body) {
expect(true).to.be.true;
done();
});
});
});