[英]DRY mocha async tests
使用摩卡咖啡,我經常需要在驗收測試中執行以下操作:
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();
}));
但這也不是真正可讀的。 如果您能給我一些重構的提示,那將很好。
您有兩個單獨的問題:
關於第一點,DRY是有用的原則,但是在編寫單元測試時不要高估他的重要性。 IMO的可讀性和可維護性至關重要,而我將只需要一點冗余就可以切實提高可讀性。
第二點是部分基於意見的,但我會說:學習並學習如何使用Promises。 並不是Promises總是安全的(您必須記住始終在then
內返回Promise並調用fail
以捕獲運行時錯誤),但是它們更容易閱讀。
您可以使用ES6實現或Q之類的庫來利用可靠的Promise實現。
祝好運。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.