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

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

関連記事

JavaのYAMLライブラリのSnakeYamlを使う

最近はプロパティファイルを書くときに人間が読みやすくて記述量が少ないという理由でYAMLをよく使っています。 インデントが違うとエラーになりますが、その規約のお陰で記述量の少なさと読みやすさにつながっ …

no image

Windows7でSeleniumServer(RC)を使ってFireFoxを起動する方法

ちょうどWEBアプリを作っているので複雑な画面をSeleniumでテストケース作っておけばいいかなーと思って作りました。 FireFoxDriverを起動しています。 Jenkinsでテストとテストサ …

no image

Commons-VFS2で再帰的にディレクトリ一覧を取得する方法

いつの間にかCommons-VFSが2にバージョンアップしています。 昔使ったんですけど、FTPの動作が微妙すぎてやめました・・・。 Javaでディレクトリを再起的に検索する方法はありふれているのです …

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

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

Maven2でDomaを使ったアプリケーションをコンパイルする方法

JavaのO/Rマッパーの金字塔はなんですかね。 自分で言うのもなんですが、僕は完全にO/Rマッパーの移行に失敗したので、この辺りは疎いのですが・・・。 そんな僕はDomaというO/Rマッパーを使って …