重用mocha测试代码

时间:2014-09-12 13:52:19

标签: javascript node.js unit-testing mocha

我正在开发NodeJS应用程序并使用Mocha进行单元测试。

我们说我有两套非常相似的测试服。 实际上那些是两类测试 实现相同的界面。

例如:

suit_a.js

var A = require('./a');
describe(function () {
    var instance;
    beforeEach(function () {
        instance = new A();
    });
    it(function () {
        assert(instance.getSomeValue() === 1);
    });
});

suit_b.js

var B = require('./b');
describe(function () {
    var instance;
    beforeEach(function () {
        instance = new B({option: "option-value"});
    });
    it(function () {
        assert(instance.getSomeValue() === 1);
    });
});

有没有办法删除代码重复?有办法有两个 不同的测试套件,使用相同的断言代码,但具有不同的配置 或类似的东西?

我现在唯一的想法是使用某种源代码生成, 但我想尽可能避免这种情况。

1 个答案:

答案 0 :(得分:2)

将内部函数移动到额外文件并require。 在您的情况下,您需要new A()new B(...) extra,因此要么将它们提供给外部,要么将它们作为参数包含在require-result中:

var t = require('innerTestGen');

var t1 = t.create(new A())
describe(t1);
var t2 = t.create(new B(...))
describe(t2);

希望有帮助吗?