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(); }); }); }); 

       

网上收集的解决方案 "Node.js + Chai / Mocha /应该:针对相同的响应运行多个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 () { 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失败,摩卡将报告失败的具体原因,即使有两个断言。