ひよっこ。

I want to…

Posts Tagged ‘QuickJUnit’

QuickJUnitのvim版が見当たらなかったので、それ風に作ってみた

Posted by hikaruworld : 2011 11月 6

QuickJUnitという、かゆいところに手が届くめちゃ便利なEclipseプラグインがあります。

一言で言うと、ショートカットキーでプロダクトコードとテストコードの簡単に行き来したり、
メソッドレベルで簡単にテストを実行する事が出来ます。

私はEclipse使いなのですが、動的言語はvimで書いたりするので、
vimにもそういったプラグインがないかなーと思って探していたのですが、
見当たらなかったので簡単に作ってみました。

機能としてはシンプルで、プロダクトコードとテストコードをで行き来します。
プロダクトコードがFizz.jsだった場合は相対パス場に存在する./test/Fizz_test.jsを探します。

簡単に実行したい時はQuickRunプラグイン辺りを入れましょう。

対象コードの検索のテスト名やfiletypeでのカスタマイズとか
簡単に実行とか欲しいものはありますが、
とりあえず今求めていた機能はこれがミニマムセットなので、
まぁ、気が向けば拡張しようと思います。

以下コードです。

function! QuickChange()
	let file_rh = expand("%:t:r")
	let index = matchend(file_rh, "_test")
	let file_h = expand("%:p:h")

	if index == -1 || index != strlen(file_rh)
		" main => test
		execute "args" file_h . "/test/" . file_rh . "_test." . expand("%:e") 
	else
		" test => main
		execute "args" file_h . "/../" . expand("%:s?_test??")
	endif
endfunction

" KeyMap
map <C-T> :QuickChange<CR>

" Command
command!	QuickChange		call QuickChange()

一応プラグイン化してbzrにUPしてあります。

以上です。

Posted in program | タグ: , , | Leave a Comment »

QuickJUnitを設定して、まず第一にやることを3つ

Posted by hikaruworld : 2011 4月 7

QuickJUnitになれてくると激しく便利です。
ところで、かゆい所に手の届くプラグインですが、もうちょっと細かい設定もしています。

BetaサイトにあるExtension周りを導入

UpdateSiteに以下を指定して、http://quick-junit.sourceforge.jp/updates/beta/
以下の辺りのライブラリを導入します。ProcessCallとか、Mockito連携とか便利です。
。。。TestContextはまだ使えてないけどorz…

  • Quick JUnit process call Extension
  • Quick JUnit Template Extension
  • Quick JUnit Test Feature
  • Quick JUnit TestContext Feature(Experimental)
  • Quick JUnit Mockito Integration Plugin
  • Quick JUnit Plugin

設定の変更

なぜか、自環境だと、Ctrl+Shift+0でデバッグしてくれないという致命的な問題があるので、
キーバインドの設定を変えておきます。
1. 一般 -> キー
2. フィルターに0を設定
3. JUnitデバッグをCtrl+Shift+-に設定

テンプレートを拡張

Mockitoやhamcrestを利用しているので、staticインポートへ変更しておきます。
デフォルトの設定だと、hamcrest側のMatcherをJUnitに内蔵されているMatcherに食われてしまいますorz…

1. Java -> エディター -> テンプレートを選択
2. テンプレートからQを選択
3. 編集をクリックしてテンプレートを以下のように変更

@${testType:newType(org.junit.Test)}
public void ${testname}() throws Exception {
	${junit:importStatic('org.junit.Assert.*')} 
    ${hamcrest:importStatic('org.hamcrest.Matchers.*')}
	${mockIto:importStatic('org.mockito.Mockito.*')}${cursor} 
}

4. テンプレートからATを選択
5. 編集をクリックしてテンプレートを以下のように変更

${junit:importStatic('org.junit.Assert.*')}assertThat(${:localVar(java.lang.Object)}${cursor},${hamcrest:importStatic('org.hamcrest.Matchers.*')}is(${expected}));

おまけというか要望

Ctrl+9でテスティングペアがない場合にテストケースを作成してくれるのはとてもうれしいのですが、
Maven構成とかでやってるとsrc/mainじゃなくてsrc/testのソースフォルダを自動で指定してくれるとめちゃうれしいです(><)

以上です。

Posted in program | タグ: , , , | Leave a Comment »