vimtest修正記録-実行コマンドやassertのサンプル追加
vimtestについてはこちらVim scriptのテストを行うvimtestプラグインを書いた - ぼっち勉強会
モチベーション維持と振り返りのための記録
- 実行コマンドVimTestRunの追加
- 直接打てるassertとverifyの追加
リポジトリにはまだあがっていない。
実行コマンドVimTestRunの追加
これまでは以下のように最後にvimtest#run()と書いた上でsourceしないといけなかった。
(実際は、自分はquickrunで実行してた)
let s:testcase = vimtest#new() function! s:testcase.sum() call self.assert.equals(3, 1 + 2) endfunction call vimtest#run()
最初は別にquickrun使ってるしいいやと思ったけど、
だんだんとcall vimtest#run()と書くこと自体がメンドイしナンセンスじゃないかと思い始めた。
ので、ちゃんと実行コマンドを作る。
今のところ書いているサンプルでは、
let s:testcase = vimtest#new() function! s:testcase.sum() call self.assert.equals(3, 1 + 2) endfunction
この状態から「:VimTestRun」とコマンド実行するとテストが走る。
- TODO
- メッセージはechoで出しているけど、出力先を切り替えるられるようにしたい。echo、専用バッファ、ファイルとか
- エラー対象のテストへジャンプできるようにしたい
- ディレクトリ指定で動くようにしたい(優先度低)
直接打てるassertとverifyの追加
必要かどうか分からないけどサンプル書いた。
let s:a = 1 let s:b = 2 call vimtest#assert(s:a == s:b)
assertの引数に1(true)以外が来ると例外を投げる。
例外は出さずメッセージだけ出力する場合はverifyを使う
let s:a = 1 let s:b = 2 call vimtest#verify(s:a == s:b)
- TODO
- vimtest#assertって文字が多い。さらっとassertしたいだけなのにタイプ数多いのはどうだろう
- ほんとは構文的に「VimTestAssert s:a == s:b」って書きたかったけど、スクリプトスコープを内側で参照できなかったので諦めた
- どこかでスクリプトスコープの参照方法を読んだような気もするけど、あんまりやらない方がいいんだろうな
- 出力先を切り替えられるようにしたい
- 今の出力結果は引数をそのまま出しているだけだが、それだとあんま嬉しくない気がする
どういう設計にしていくか
悩ましい。
「使いやすい」を第一にしたいけど、使いやすさって何だろうと迷ったり。人によって違いもあるだろうしなぁ。