mini.testでNeovimプラグインのテストに入門した

by
カテゴリ:

以前書いた、Budouxを使ったWモーションをE/B/gEに対応させてプラグインにしようかなと思って、atusy/budouxify.nvimを作った。

BudouxによりNeovimのWモーションを拡張し、日本語文章の区切りに移動させる
https://blog.atusy.net/2024/12/27/nvim-budoux-motion/

ただ、いかんせん移動先の条件分岐が複雑で、頭がこんがらがってきたので、テストがほしくなった。同僚とプラグインをペアプロしてたときに、「テストほしいよなあ」とぼやいたら、やろうってことになって、mini.nvimに付属のテストフレームワークmini.testを使ってみることになった。自分一人だとまあええかとなりがちなので、ペアプロしててよかったなと思う。

テストフレームワークとして、plenary.nvimも検討した。ただ、サンプルを見る限り、テストに使う関数(describeitなど)をどうもグローバルに定義するっぽい。 LSPに怒られるし、イケてないなと思った。

その点mini.nvimならrequire(mini.test)でロードしたモジュール経由で必要な関数を使えるのでいいなと思った。

使い方はTESTING.mdをみればすぐに理解できると思う。最小限には以下をすれば始められそう。

parametrizationやテストスコープの階層化など、案外リッチなこともできてよさげ。スナップショットテストの仕組みもあると嬉しかったかな。

ENJOY