Vue test utils
Vueのコンポーネントテストに便利そうなライブラリ。ざっくりいえばコンポーネントをラッパー内にマウントして、適当にモックをインジェクションしたりイベントを発火させて、UIの変化を確認するブラックボックステストを容易に行うもの。
Shallow 描画っていう機能も面白い。子コンポーネントのテストはそのコンポーネントのテストで行うべきではないので、子コンポーネントを描画しないで実行するための機能。リストレンダリングを含んでいてもDOMが重くならないしね。
それはそうとなんか一部わからんところがあったのでメモ
非同期コールバックやプロミスの解決などの操作のために、イベントループを明示的に進める必要がある場合は、まだ nextTick が必要です。
これパッと読んで解釈できなかったけど、イベントループの仕組みを考えると自然なことだった。
まず非同期コールバックやプロミスを返すメソッドが完了した瞬間のことを考えてみよう。すると基本的に彼らはイベントループのためのスタックに溜まっていく。つまり、完了した瞬間に発火するわけではない。
つまりここでnextTickが必要なのは、スタックに溜めたあとの発火を待つため。
nextTickの実装を思い出せば難しくはないが、内部的に適当なDOMを生成して更新したことを確認している。つまりそのタスクはスタックの一番最後に溜まる。
そのタスクが発火し終えたということは、コールバック関数やプロミスの解決後の処理まで終えていると考えられる。
……ということだと思う。nextTick周りの実装は本当に面白いし、JavaScriptの実行スタイルがスタックに積まれていくというシンプルな仕組みであることも幸いしているような気がしている(マイクロタスクにさばいていくあたりは複雑そうだけど)。