Java

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

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の補完も予想以上にスムーズにできました。
例えば以下のようなテストケース
[groovy]
expect:
Be3Util.lowerCase(str) == expected

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

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

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

まとめ

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

-Java
-,

© 2024 ビー鉄のブログ Powered by AFFINGER5