2017-08-07 8 views
2

記述ブロックがあり、その2ブロックが記述ブロック内にブロックされているとします。上記のブロックが失敗した場合にブロックを実行しない方法

describe(""){ 
    it(""){ 
    }  //if this block fails script should not execute next block 
    it(""){ 
    } 
} 

最初にブロックすると、スクリプトは次のブロックを実行しません。分度器でこれをどうやって達成するのですか?助けてください。

+0

'try ... catch'ブロックにコードをラップできませんか? – Nisarg

答えて

1

例:

describe('first test', function() { 
    it('Second test', function (done) { /* some code */}); 
    it('Third test', function (done) { /* some code */}); 

    it('employee test', function (done) { 
     //It should be an object 
     var employee = getEmployee(); 

     expect(employee).not.toBeNull(); 
     expect(employee.name).not.toBeNull(); // if employee == null will not stop here and throw an exception later 
     expect(employee.name).toBe(‘tarun’); 

     done(); 
    }); 

it('employee test', function (done) { }); 

}); 

私はジャスミンのに失敗し、その後、第二をラップするためにあなたを提案し、第三のtry/catchに期待し、両方または1つごとに1つずつ、そして手動でキャッチエラーに対処するだろう失敗します()。

1

ブロックをtry-catchにカプセル化することができます。次に、いくつかのブール値を使用して、最初にブロックされたブロックが正常に実行されたかどうかを確認し、2番目のブロックを実行します。

describe(""){ 
    try{ 
     var firstSuccess = false; 
     it(""){ 
      //do whatever... 
      firstSuccess = true; //set firstSuccess to true at end of it block 
     }  //if this block fails script should not execute next block 
     if(firstSuccess){ //execute second it block only after first it executes successfully 
      it(""){ 
      } 
     } 
    }catch(err){ 
     //handle error here 
    } 
} 
関連する問題