對於新手而言,mocha的時序就像謎通常,許多奇怪的測試樣例的失敗都是因爲對時序不清楚。下面我就把我在測試工做中總結的時序規則部分與你們共享。異步
jsdescribe('work',function(){ it('1',func(){}); it('2',func(){}); .... }); //按1,2,3...順序執行
規則1:describe裏地it的非異步部分按它們定義的順序執行,它們所觸發的回調的註冊順序也聽從it的註冊順序測試
規則2:不被describe包裹的部分執行順序的優先級最高code
js{block1} describe('1',function(){ ... }); {block2} describe('2',func(){..}); //執行順序block1,block2,describe1,describe2
規則3:同一層次的describe執行順序聽從它們的定義順序it
jsdescribe('parent',func(){ it('1',func(){..}); describe('child1',func(){...}); it('2',func(){...}); describe('child2',func(){..}); }); //執行順序爲it1,it2,child1,child2
規則4:外層describe的全部it執行優先級高於嵌套的describeio
最後咱們把這四條規則總結一下function