Matthew Note

NodeJS

Unit test

mocha

  • describe可以嵌套
  • it不能嵌套

时序

  • describe里地it的非异步部分按它们定义的顺序执行,它们所触发的回调的注册顺序也遵从it的注册顺序
  • 不被describe包裹的部分执行顺序的优先级最高
  • 同一层次的describe执行顺序遵从它们的定义顺序
  • 外层describe的所有it执行优先级高于嵌套的describe
  • describe内所有函数全部是non-block的,所以不能再其中指望以顺序的方式传递变量什么的

处理异步单元测试

尤其在需要发出请求,处理返回的时候,由于NodeJs是全异步的,所以describe不会捕捉到返回结果,所以需要在it的callback中给一个done,并在异步调用结束后调用done()

同时它的几个hook也接受使用done的异步调用。