mochaのタイミング問題
1544 ワード
前言
初心者にとって、mochaのタイミングは謎のようで、多くの奇妙なテストサンプルの失敗はタイミングがはっきりしていないためです.次に、テスト作業でまとめたタイミングルールの部分を皆さんと共有します.
Describeでのタイミング
simple case
describe('work',function(){
it('1',func(){});
it('2',func(){});
....
});
// 1,2,3...
ルール1:describeのitの非非同期部分は、それらが定義した順序で実行され、それらがトリガーしたコールバックの登録順序もitの登録順序に従う.
hooks
describe間のタイミング
非describe部分
ルール2:describeに包まれていない部分の実行順序の優先度が最も高い
{block1}
describe('1',function(){
...
});
{block2}
describe('2',func(){..});
// block1,block2,describe1,describe2
並列describe
ルール3:同じ階層のdescribe実行順序が定義された順序に従う
ネストされたdescribe
describe('parent',func(){
it('1',func(){..});
describe('child1',func(){...});
it('2',func(){...});
describe('child2',func(){..});
});
// it1,it2,child1,child2
ルール4:外層describeのすべてのit実行優先度がネストされたdescribeより高い
まとめ
最後にこの4つのルールをまとめてみましょう