Node.js + Chai / Mocha /应该:针对相同的响应运行多个testing
我正在使用与以下类似的东西来执行一系列使用Mocha的APItesting。 这很好,但是它需要为每个testing制作一个单独的API调用。 我想要使用相同的API调用,并针对该响应运行多个testing。 我一直在阅读你before
可以使用的方法,但是Web上的所有例子都没有显示它使用API调用?
var chai = require('chai'); var request = require('request'); var async = require('async'); var assert = chai.assert, expect = chai.expect, should = chai.should(); describe('/', function () { it('should return 200', function (done) { request.get('http://localhost:8000', function (err, res, body) { res.should.have.status(200); done(); }); }); it('should say "Hello, world!"', function (done) { request.get('http://localhost:8000', function (err, res, body) { body.should.have.property('type', 'aType'); done(); }); }); });
你可以用一个像这样的函数做这个…
var chai = require('chai'); var request = require('request'); var async = require('async'); var assert = chai.assert, expect = chai.expect, should = chai.should(); describe('/', function () { var firstRequest; before(function(done) { request.get('http://localhost:8000', function(err, res, body) { firstRequest = { err:err, res:res, body:body }; done(); }); }); it('should return 200', function (done) { firstRequest.res.should.have.status(200); done(); }); it('should say "Hello, world!"', function (done) { firstRequest.body.should.have.property('type','aType'); done(); }); });
但是,除非你有一个很好的理由来做这个,否则我认为你最好结合testing。
var chai = require('chai'); var request = require('request'); var async = require('async'); var assert = chai.assert, expect = chai.expect, should = chai.should(); describe('/', function () { it('should return 200 and say "Hello, world!"', function (done) { request.get('http://localhost:8000', function (err, res, body) { res.should.have.status(200); body.should.have.property('type', 'aType'); done(); }); }); });
如果testing失败,摩卡将报告失败的具体原因,即使有两个断言。