我的mocha测试中有很多重复: describe("Some test", function() { before(helpers.testPrepare); beforeEach(helpers.freshDB); it("should foo", function(done) { //... done(); }); after(helpers.teardownServer);});describe("Another test"
          describe("Some test", function() {
    before(helpers.testPrepare);
    beforeEach(helpers.freshDB);
    it("should foo", function(done) {
        //...
        done();
    });
    after(helpers.teardownServer);
});
describe("Another test", function() {
    before(helpers.testPrepare);
    beforeEach(helpers.freshDB);
    it("should bar", function(done) {
        //...
        done();
    });
    after(helpers.teardownServer);
}); 
 如果我忘记在每次调用之前调用它会导致问题,这可能会导致问题.我想定义一个描述,确保我总是调用我的设置和拆解,所以我可以写:
我想把它写成:
var describe = require('./helpers').describe;
describe("Some test", function() {
    it("should foo", function(done) {
        //...
        done();
    });
}); 
 我怎么能这样做,因为摩卡定义描述为全局?如何确保一切按正确的顺序执行?
我会创建一个包含以下内容的helpers.js文件:function beforeEachExample() { console.log("before each"); }
function beforeExample() { console.log("before"); }
function afterExample() { console.log("after"); }
function makeSuite(desc, cb) {
    describe(desc, function () {
        before(beforeExample);
        beforeEach(beforeEachExample);
        cb();
        after(afterExample);
    });
}
exports.makeSuite = makeSuite; 
 然后我可以测试/ something.js:
var makeSuite = require("../helpers").makeSuite;
makeSuite("something", function () {
    it("one", function () {});
    it("two", function () {});
}); 
 并测试/ somethingelse.js:
var makeSuite = require("../helpers").makeSuite;
makeSuite("something else", function () {
    it("one", function () {});
    it("two", function () {});
}); 
 运行上面的设置给出:
$mocha
  something
before
before each
    ✓ one 
before each
    ✓ two 
after
  something else
before
before each
    ✓ one 
before each
    ✓ two 
after
  4 passing (5ms)
        
             