簡體   English   中英

嘗試根據循環中的條件跳過測試用例

[英]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永遠不會習慣。

另外,您實際上並沒有在任何地方使用sx

如果我理解正確,則您正在嘗試根據數據條件跳過某些測試。 您的基本概念正確,但是需要使用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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM