vimからRSpec on Rails
- May 06, 2007 03:28:17
- Comments (3)
- Trackbacks (0)
Rails, vim, RSpec
少しずつRSpec on Railsに移行していこうとしてるんだけど、 Test::Unitと違ってrails.vimのサポートがなくて簡単に走らせることができないので moroさんのRSpec用のマクロをベースに ごにょごにょ。
function! Rspec ()
let rails_spec_pat = '\<spec/\(models\|controllers\|views\|helpers\)/.*_spec\.rb$'
if expand('%:p') =~ rails_spec_pat
exe '!rake spec SPEC="'.expand('%:p').'" RSPECOPTS="-fs -c -l '.line('.').'"'
else
:!spec -fs -c %
endif
endfunction
au BufRead,BufNewFile *_spec.rb :command! Rspec :call Rspec()
*_spec.rb開いて:Rspecで実行できる。
違いは
- rake specを使う
- 現在のカーソルの行を--lineオプションに使う
--lineオプションのおかげで、実行したいit(specify)の中にカーソル持ってくれば そこだけ実行してくれる。 itの外だとそこのdescribe(context)を実行……するといいんだけど、 カーソルとdescribe行の間にitがある場合、カーソルに1番近い itのみが実行される。まあこれはRSpecの仕様、ということで。
--exampleオプションを使えたら一番いいけど、vimスクリプト書かないとどうしようもないので ひとまずこれでガマン。
それから、spec/spec.optsからオプション読めたらいいんだけど、これもオレには無理。 とりあえず今はRSPECOPTSに書き込む。
一息ついたらvimスクリプト勉強しようと思う。 rails.vimの人がなんとかしてくれたらそれが一番最高ですが。
まだRSpec全然触れてないんだけど、個人的な感想としては describe/itの2段階で括れることと、それらの引数のところで説明が書けるのが好きだな、 コメントより目立つし。 あとTest::Unitのtest_xxxみたいに妙な英語を書く必要もないし……。
shouldなんとかはどうでもいいというか、むしろ慣れるまでキモいんだけど。 あ、Test::Unitではtest_helper.rbに繰り出せば良かったメソッドって、 RSpecではどこにどう書いたらいいんだろう……。
そういえば知らないうちにcontext/specifyからdescribe/itになったみたいだけど、 日本語の場合はちょっと微妙だな……。itなんて動詞ですらない。
Trackbacks
Trackback Ping URL: http://fg-180.katamayu.net/trackback/429
Comments
- takkanm (2007/05/06 15:49:34)
shouldなんて、自然言語っぽくみせるためだけの位置づけじゃないかと、さわったことないやつが言ってみるメソッド。
- yazu (2007/05/06 17:12:06)
> takkanm
オレの英語力でもそれくらいわかるわい。
キモいといったのはそういうことじゃない。- takkanm (2007/05/06 18:28:33)
>オレの英語力でもそれくらいわかるわい。
俺の英語力 T前 + 100だから
>キモいといったのはそういうことじゃない
kwsk
