对于新手而言,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