我的mocha测试中有很多重复:
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 () {}); });
运行上面的设置给出:
$mocha something before before each ✓ one before each ✓ two after something else before before each ✓ one before each ✓ two after 4 passing (5ms)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。