我正在开发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);
});
});
有没有办法删除代码重复?有办法有两个 不同的测试套件,使用相同的断言代码,但具有不同的配置 或类似的东西?
我现在唯一的想法是使用某种源代码生成, 但我想尽可能避免这种情况。
答案 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);
希望有帮助吗?