以前書いた、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も検討した。ただ、サンプルを見る限り、テストに使う関数(describe、itなど)をどうもグローバルに定義するっぽい。
LSPに怒られるし、イケてないなと思った。
その点mini.nvimならrequire(mini.test)でロードしたモジュール経由で必要な関数を使えるのでいいなと思った。
使い方はTESTING.mdをみればすぐに理解できると思う。最小限には以下をすれば始められそう。
.gitignoreにdeps/を追加Makefile書くmini.testを自動インストールする
scripts/minimal_init.luaを用意し、テスト専用の設定を最小限に書く- 必要なモジュールをランタイムパスに追加
tests/.../xxx_test.luaを用意するmake testで実行
parametrizationやテストスコープの階層化など、案外リッチなこともできてよさげ。スナップショットテストの仕組みもあると嬉しかったかな。
Atusy's blog