2018-09-25

Node6のテストコードでasync/await

先日からの続きで Node6 でコードを書いてるわけだけど、どうしてもテストの際には同期的に処理されてほしい before, after な辺りがあるわけですよ。

追加したもの

yortus/asyncawait: Callback heaven for Node.js with async/await

他にもいくつか似たようなライブラリはあるが、これを選んだ理由は

async () => {}

const {async} = require('asyncawait')

async(() => {})

と書けて、字面的に構文としての async/await に対していちばん違和感が少ないため。

これで

desribe('..', () => {
  beforeEach(async(() => {
    ..
  }))

  it('..', async(() => {
    ..
  }))
})

のように書ける。

除外したもの

eslint では test/ 以下を対象としないようにしておく。

eslint-plugin-node を使って async/await がコードに混入しないようにしている場合、ライブラリで追加した async/await も弾かれてしまうため。

テストコードに lint … 要らないよね? ダメすか。

cf. eslint-plugin-nodeでNode8を使いつつNode6で問題の起きないコードを書く - あーありがち(2018-05-23)

しかしこれ

同期的に処理されてほしいから async/await が欲しいと考えてるわけで、async とは?

About

例によって個人のなんちゃらです