前言
對于新手而言汗洒,mocha的時序就像謎一般粟判,許多奇怪的測試樣例的失敗都是由于對時序不清楚歪架。下面我就把我在測試工作中總結(jié)的時序規(guī)則部分與大家共享吉捶。
describe里地時序
simple case
describe('work',function(){
it('1',func(){});
it('2',func(){});
....
});
//按1,2放案,3...順序執(zhí)行
規(guī)則1:describe里地it的非異步部分按它們定義的順序執(zhí)行姚建,它們所觸發(fā)的回調(diào)的注冊順序也遵從it的注冊順序
hooks
- before
- after
- beforeEach
- afterEach
這是比較常用的hooks,我們可以采用hooks改變在describe中的時序卿叽,但是記住hooks是在describe的基礎(chǔ)上的桥胞,與describe聯(lián)系在一起的。hooks對子describe是不起作用的考婴。
describe間的時序
非describe部分
規(guī)則2:不被describe包裹的部分執(zhí)行順序的優(yōu)先級最高
{block1}
describe('1',function(){
...
});
{block2}
describe('2',func(){..});
//執(zhí)行順序block1贩虾,block2,describe1沥阱,describe2
并列的describe
規(guī)則3:同一層次的describe執(zhí)行順序遵從它們的定義順序
嵌套的describe
describe('parent',func(){
it('1',func(){..});
describe('child1',func(){...});
it('2',func(){...});
describe('child2',func(){..});
});
//執(zhí)行順序?yàn)閕t1,it2,child1,child2
規(guī)則4:外層describe的所有it執(zhí)行優(yōu)先級高于嵌套的describe
總結(jié)
最后我們把這四條規(guī)則總結(jié)一下
- describe里地it的非異步部分按它們定義的順序執(zhí)行缎罢,它們所觸發(fā)的回調(diào)的注冊順序也遵從it的注冊順序
- 不被describe包裹的部分執(zhí)行順序的優(yōu)先級最高
- 同一層次的describe執(zhí)行順序遵從它們的定義順序
- 外層describe的所有it執(zhí)行優(yōu)先級高于嵌套的describe