使用mocha我经常需要在验收测试中执行以下操作:
beforeEach(function(done) {
Factory.createMany('artifact', 2, function(err, result) {
if(err) {
return done(err);
}
expected = result;
done();
});
});
将它干掉一点以消除彻底的重复错误处理会很好。我想出的一个想法是:
function failOrRun(done, fn) {
return function(err, result) {
if (err) {
return done(err);
}
return fn(result);
};
}
Factory.createMany('artifact', 2, failOrRun(done, function(result) {
expected = result;
done();
}));
但这也不是真的可读。如果你能给我一些关于重构的提示,那就太好了。
答案 0 :(得分:0)
您有两个不同的问题:
关于第一点,DRY是一个有用的原则,但在编写单元测试时不要过高估计它的重要性。可读性和可维护性至关重要,IMO,我只需稍微冗余就可以提高可读性。
第二点是基于意见的,但我会说:学习和学习如何使用Promises。并不是Promise总是安全的(你必须记住总是在then
内返回一个Promise并调用fail
以捕获运行时错误),但它们更容易阅读。< / p>
您可以使用ES6实现或类似Q的库来利用强大的Promise实现。
祝你好运。