[英]Trying to skip test case based on condition in a loop
我有以下測試代碼,我的意圖是在循環遍歷要檢查條件並第一次運行的對象時,將go_on
值分配為false
並在為false時跳過測試。 我在不循環遍歷對象的情況下測試了此代碼,它可以正常工作。 我使用nodejs和mocha測試框架。
var s={a:c,b:a};
Object.keys(s).forEach(function (x){
before(function( done1 ){
if (go_on==true) {
done1();
}
else this.skip();
});
it('Exit if go_on false', function (done) {
go_on=false;
console.log(go_on);
done();
});
});
好像你正在設置go_on=false
在你it
,但隨后在你使用它before
。 before
的代碼發生之前it
的代碼,這樣的價值go_on
組在it
永遠不會習慣。
另外,您實際上並沒有在任何地方使用s
或x
。
如果我理解正確,則您正在嘗試根據數據條件跳過某些測試。 您的基本概念正確,但是需要使用beforeEach()
和before()
。 before()
回調在整個測試套件之前執行,而beforeEach()
回調在beforeEach()
測試之前運行。 這是一個有效的示例:
describe('conditional tests', function() {
var go_on = true;
var s={ a:'1', b:'2', c:'3'};
Object.keys(s).forEach(function (x){
beforeEach(function( done ){
if (go_on === true) {
done();
}
else this.skip();
});
it('test for ' + x, function (done) {
if (x === 'b') {
go_on=false;
console.log('stopping tests');
}
done();
});
});
});
結果輸出為:
$ mocha test.js
conditional tests
✓ test for a
stopping tests
✓ test for b
- test for c
2 passing (13ms)
1 pending
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.