IntelliJ IDEAのTemplate機能を使ってSpockのテストをもっと快適にしてみる
Spockの資料を漁っていたところ、とある動画を発見。観てみると、IDEAのTemplate機能を使ったとても便利な作業の効率化を紹介していたので、動画を参考にしつつ別途エントリとして書き起こしてみました。
動画はこちら。
そして以下手順メモ。
テンプレートの準備
- [IntelliJ IDEA]→[Preferences]→[Live Templates]を選択。
- んで、この時点では[Spock]のグループが無いので作ります。先程作った項目を右クリック→[Move]→[New Group]を選択。
- グループ名に『spock』と入力し[OK]押下。
- これでグルーピングが出来ました。
- 残りのものも併せて追記。
- ちなみに、コード内容は以下になります。コピペしてお使いくださいw
- -
spew / Spock Expect-Where ------------------------ def "$NAME$"() { expect: $END$ where: // TODO: add where block. }
spgwt / Spock Given-When-Then ------------------------ def "$NAME$"() { given: $END$ when: // TODO: add when then: true }
spwt / Spock When-Then ------------------------ def "$NAME$"() { when: $END$ then: true }
- またこれに先立ち、上記テンプレートを使う前に作るべきSpecificationクラスを拡張したテストクラスのテンプレートも用意しちゃいましょう。
- [IntelliJ IDEA]→[Preferences]→[File Templates]を選択
- [+]で新要素設定
- Name: Spock Specification
- Extension: groovy
- テンプレート内容: (後述)
テンプレート内容のテキストもこちらに貼っ付けて行きますね。|ω・)つ
#if (${PACKAGE_NAME} != "") package ${PACKAGE_NAME}; #end import spock.lang.Specification #parse("File Header.java") class ${NAME} extends Specification { }
実践してみる
上記設定が完了したら、早速試してみましょう。設定後、そのまま試したら今イチ動かなかったので念の為IDEA自体を再起動。
- [File]→[New]で”Spock Specification"を選択。
- テストクラス名を入力、[OK]押下。
- 雛型が出来ました。
- 次いでテンプレートの確認。略称を書いたところで該当するキーを押下(※今回の場合、デフォルト設定[Tab]だったのでTabを押下)すると...
- テンプレート内容が一瞬で!そのまま赤枠が表示されている状態でメソッド名を入力出来ます。
- メソッド名を入力し、そのまま(赤枠が残っている状態で)Enterを押下すると...
- なんとそのままGiven節の先頭にカーソルが移動!(テンプレート内の$END$が効いていると思われる)
上記で設定した内容の他にも必要であれば同じ手法でテンプレートを増やせますし、これでよりSpockテスティングが快適になりますね!
(追記)
エントリ書いた後、自ブログから関連エントリを眺めていたら、既におれんじクローバー (TwitterID:@orange_clover)さんが同種の内容を過去に書いておられてました。
エントリ内容によると、[Ctrl+J]で関連補完内容が表示される→ショートカットを入力していく事で絞込が出来るんですね〜。これは便利!