重用mocha测试代码

Reusing mocha test code

本文关键字:代码 测试 mocha 重用      更新时间:2023-09-26

我正在开发一个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);
    });
});

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

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

将内部函数移动到一个额外的文件并require它。在您的情况下,您需要额外的new A()new B(...),所以要么在外部提供它们,要么将它们作为所需结果的参数:

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

希望有帮助吗?