以前書いた、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やテストスコープの階層化など、案外リッチなこともできてよさげ。スナップショットテストの仕組みもあると嬉しかったかな。