如何在mocha测试之间共享资源,例如连接?
cookies.test.js
:
describe('Cookies', function() {
it('setCookie()', function() {
connection.setCookie('foo', 'foo-content')
connection.cookies['foo'].should.equal('foo-content')
}
}
shutdown.test.js
:
describe('Connection', function() {
it('shutdown()', function() {
connection.shutdown()
connection.connected.should.be.false()
}
}
如果connection
本身只能在这两个文件中共享,而只是初始化一次?
实际上有数百个测试,这就是分享它的必要条件。
答案 0 :(得分:1)
您的connection
对象带有状态。测试之间共享状态被认为是一种不好的做法。
如果必须分享它是出于某些压倒一切的原因,Mocha将无法帮助您解决此问题。你可以做的是创建一个模块:
var connection = new Connection(...);
module.exports = connection;
然后在每个测试中从模块获取连接。如果模块名为TestCollection
,则测试文件应包含:
var connection = require('TestConnection');
由于模块只加载一次,因此所有测试文件都将获得相同的连接。