Java

Spockを使いたいからEclipseからIntelliJ IDEAへ移行した話

投稿日:2017/04/23 更新日:

Javaを書くときはずーとEclipseを使っていましたが最近IntelliJ IDEAへ移行しました。
確かEclipse2のときから使っていたので10年以上は使っていたと思います。
Eclipseに慣れていたのと特に不便は感じていなかったのでIntelliJ IDEAへ無理に移行しなければいいかなーと思っていたのですがテストコードをSpockで書くことを考えてIntelliJ IDEAに移行しました。

EclipseでSpockを使うときに辛かったこと

SpockはGroovyで書くのですがEclipseだと書くのがちょっとつらい瞬間がありました。
・EclipseのGroovyプラグインで補完が少しききにくい
・テストがメソッド単位で実行できない

もちろんGroovyで完全に補完等をするのは難しいと思うのですが、それでも実行してみないとわからないエラーが多かったです。
GroovyはJava風のコードも書けるのでGroovy風味はなくなりますがJava風に書くことである程度コード補完は可能です。
なのでこの部分はなんとか我慢できたのですが、どうにもできなかったのがSpockのテストをメソッド単位で実行できなかったことです。
普段はEclipseでQuickJunitを使ってテストを実行していてQuickJunitはメソッド単位でテスト実行できるので、これが手に馴染んでいたので今この文化を変えるのが難しかったということが大きかったです。
Spock便利なのに導入できていませんでした。

IntelliJ IDEAへの移行

Eclipseでもどうにかならないかなーと思って色々探してみたのですが解決することができず。
元記事は忘れたのですがIntelliJ IDEAがGroovyのサポートがすごいいいと何かで見た記憶があって試してみました。
IntelliJが凄まじくてSpockでメソッド単位でのテスト実行はもちろんのことIDE上でGroovyの補完も予想以上にスムーズにできました。
例えば以下のようなテストケース

        expect:
        Be3Util.lowerCase(str) == expected

        where:
        str   || expected
        null  || null
        ""    || ""
        "abc" || "abc"
        "aBc" || "abc"

whereブロックで出てくるstrとexpectedが、expectブロックで補完できます。
↓はキャプチャですがwhereブロックのstrにカーソルを合わせるとexpectブロックのstrがハイライトされます。

もちろん@Unrollにも対応しています。

今のところ大きな問題もなく使えています。
ちなみにIntelliJ IDEA Community EditionでもSpockの恩恵は受けれます。

まとめ

IntelliJ IDEAを持ち上げておいてなんですが、Eclipseから乗り換えたほうがいいよということは全く思っていません。
EclipseもしっかりとしたIDEなので特に不満がなければ乗り換える必要なんてないと思います。
IDEは生産性にかなり直結するところがあるので慣れるまでは一時的に効率が落ちることもあると思います。
実際自分もInteliJを使い始めた最初のころEclipseとの動作の違いでかなり時間を費やしたこともありました。
自分の場合もEclipseかな乗り換えることにかなり迷いもあったのですが、テストを書く時間もそれなりに多いので思い切って乗り換えました。
まだ戸惑うこともありますが使いながら慣れていきたいと思います。

-Java
-,

執筆者:


comment

メールアドレスが公開されることはありません。

関連記事

Tomcatのメモリ使用量をjconsoleを使って監視する方法

まれに、Tomcatのメモリ使用量をリアルタイムで知りたいということが無いでしょうか。 管理人はたまにあります・・・。 JDK5か6以降jconsoleという便利なツールが追加されまして、それを使って …

Spring MVCでビューにApache Tilesを使う

Spring MVCはデフォルトのビューはJSPみたいですね。 JSPでも問題ないのですが、せっかくなのでTilesを使ってみたいと思います。 僕の印象ではTilesは、それ自体がテンプレートシステム …

Spring MVCでHelloWorld EclipseのTomcat上で起動する

前回はMaven2で構成管理しつつEclipseの設定を行いました。 今回は、いよいよSpringMVCのアプリケーションを動かしてみたいと思います。 手順は ・サンプルプログラムの作成 ・Tomca …

初めてのStack Overflow(英語サイト)

最近、困ったことがあって調べものをするとだいたいStack Overflowの記事がヒットします。 基本的にReadOnlyだったのですがApache Camelのことで少し気になったことがあったので …

Maven2でwarを実行すると2回目がエラーになる

Mavenでwar:warを実行してWARファイルを作成することがあると思います。 1回目はうまくいくのですが、続けて実行すると失敗してしまいました。 試しに、target以下の作成されたWARファイ …