将Chai HTTP (https://www.chaijs.com/plugins/chai-http/(添加到节点项目测试中。
使用该插件(如文档中所示(使用:
var chai = require('chai')
, chaiHttp = require('chai-http');
chai.use(chaiHttp);
我想知道我是否需要在我使用chaiHttp的每个测试文件中添加chai.use(chaiHttp);
? 或者我可以在其中一项测试中设置 chaiHttp 一次?
它可以在公共文件中吗?
从mocha
v8.2.0 开始,您可以使用 https://mochajs.org/#global-fixtures。
全球赛程:
保证执行一次且仅执行一次
您可以使用测试夹具决策树向导的东西。
此流程图将帮助您决定应该使用哪些钩子、根钩子插件或全局夹具。
知道这一点后,这里有一个例子:
a.test.js
:
const chai = require('chai');
const { expect } = chai;
describe('a', () => {
it('should pass', () => {
expect(chai.request).to.be.a('function');
});
});
b.test.js
:
const chai = require('chai');
const { expect } = chai;
describe('b', () => {
it('should pass', () => {
expect(chai.request).to.be.a('function');
});
});
fixtures.js
:
var chai = require('chai'),
chaiHttp = require('chai-http');
exports.mochaGlobalSetup = function () {
chai.use(chaiHttp);
console.log('setup chaiHttp plugin');
};
运行测试套件,结果如下:
npx mocha --require fixtures.js ./**/*.test.js
setup chaiHttp plugin
a
✓ should pass
b
✓ should pass
2 passing (5ms)