在mocha测试之间共享资源

时间:2016-10-19 14:24:23

标签: mocha

如何在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本身只能在这两个文件中共享,而只是初始化一次? 实际上有数百个测试,这就是分享它的必要条件。

1 个答案:

答案 0 :(得分:1)

您的connection对象带有状态。测试之间共享状态被认为是一种不好的做法。

如果必须分享它是出于某些压倒一切的原因,Mocha将无法帮助您解决此问题。你可以做的是创建一个模块:

var connection = new Connection(...);

module.exports = connection;

然后在每个测试中从模块获取连接。如果模块名为TestCollection,则测试文件应包含:

var connection = require('TestConnection');

由于模块只加载一次,因此所有测试文件都将获得相同的连接。