うさぎ組

ソフトウェア開発、チームによる製品開発、アジャイル、ソフトウェアテスト

JavaOneTokyoでGroovy+AndroidのLTしてきました。 #JavaOneJP

JVM言語BoF

Scala, JRuby, Groovyの3つの言語対決というテーマで2時間様々なセッションがおこなわれました。
LTによんでくださったJGGUGさんありがとうございます!

ざっくりとした感想はつぎのかんじです。
Scala:静的できれいなコードがかける。短いコードになる。
Groovy:機能が豊富であり、Javaとの親和性もたかい。ビルドツールとしてもよい。
JRubyRuby自体のきれいさがある。CRubyのみの知識では難しいらしい。
ベンチマーク結果:

  1. Java
  2. Groovy++(Groovy++というライブラリを使用)
  3. Scala(mutable実装)
  4. JRuby
  5. Scala(Immutable実装)
  6. Groovy

当日の予定としては次のような内容を話すつもりでした。
RSpec」「Specs2」はUnitTestよりもIntegrationTest向きです。
UnitTestには「Spock」を使いましょう。


ですが、当日控室にいくと@ @ をはじめとするモヒカン集団に遭遇しました。
一瞬で僕は悟りました。「今日はマサカリを交わすことが使命だ」
彼らの目の前で「Specs2」を批判したら血だらけになって帰ることになりそうです。
ということで、「AndroidでSpockをつかいましょう。そしてGradle使いましょう。」という話にしました。
(※Specs2の機能を全網羅する時間がなかったので、話に上げるべきじゃないという判断もありました。


デモをしたのですが、いろいろと時間がたりなくって紹介しきれませんでした。
デモで伝えきれなかったのは「GradleでのSpockの実行結果表示がすごくいいよ!」っていうところです。
Spockのテストメソッド単位で成否がでるので「どんなテストが失敗したのか」というのが見易いんです。
JUnitのパラメタライズドテストの実行結果はパラメーターにした配列のインデックスが表示されるので「どんなテストが失敗したのか」が非常にわかりにくいです。
まぁたのしかったのでよいです。

コンテナでテストをまわせ!JavaEEへの自動テストの導入

JavaのWebアプリにおいてサーバーへのデプロイとテストをより統合するツール、Arquillianをデモをまじえて紹介するセッションでした。
@さんの発表でした。
ブログをあげられています。
こちら→ 「JavaOne Tokyo 2012でJava EEの自動テストについて話しました - 不悔必省


ArquillianはJBossOSSとして開発されています。


特徴は「既存のJUnitコードにたいして設定コードを追加するだけで動作可能にする。」「IDEからもビルドツールからも実行できる。」「多数のJavaEEWebサーバーに対応している」
JavaWebアプリで必要な様々なテストを想定されているようです。


この発表で一番興味深かったのが、Androidへのデプロイをサポートする予定ということでした。
IDEから実行する場合はゼロからビルドするのではなく、IDEでビルドした結果をデプロイに使用することでツールとして多少はやくなっているようです。
設定は基本的にXMLでしたが、基本的な機能についてはかなり記述量が少ないので気にならなさそう。
これから機能追加を考えたときにどうなるのか楽しみです。