Spock Frameworkに関する電子書籍たち
はじめに
この記事は、G* Advent Calendar 2015の19日目のエントリです。
Spockについて
Spock Frameworkは、JavaやGroovyで作られたアプリケーション向けのテスティングフレームワークです。
個人的にSpock Frameworkが好きな理由の一つは、power-assert機能です。
power-assertが他の言語のテスティングフレームワークでも取り入れられていったのは、覚えるAPIが少ない上にテストで失敗した時の情報が分かりやすいからだと思います。
仕事ではScalaTestを使っていますが、 power-assertのように使えるDiagrammedAssertionsをメインに使ってます。
その他にもパラメタライズドテストが書きやすかったり、Given-When-Thenと振る舞いを分かりやすく書ける機能があったりと、開発者がテストを書くのを助けてくれるのがとても好きです。
2015年のSpock Frameworkと言えば、なんと言ってもついに1.0がリリースされたのことでしょう。
Google Codeが終了するするにあたって、さまざまな事が一気に前進したように思えます。
公式のリファレンスもGitHubに移動し、Spock Framework Reference Documentationとして公開されています。
JUnit5がリリースされるとなるとSpockもどのように対応するのか楽しみではあります。
Spockを題材とした電子書籍
日本でも利用されている方が増えてきたおかげか日本語の記事や情報を見かける機会が増えましたが、本格的に導入していこうとすると英語の記事を見ることになります。
公式のリファレンスが充実しているので困ることは少ないですが、やはり自分たちのユースケースに近いサンプルがあるのが望ましいと思います。
そういう場合は書籍の出番となりますが、今回は入手しやすい電子書籍を探してみました。
普段利用している電子書籍を購入できるサイトで、Spockに関する書籍が見つかったのは、以下のとおりです。
O’Reillyは有名なので割愛するとして、Manning PublicationsはGroovy In Actionや Grails in Actionで以前からGroovyに関する書籍を取り扱っているのは知ってました。
注目したいのは、Leanpubで以前Everyday Rails - RSpecによるRailsテスト入門を購入した際に利用していました。
Groovyについて困っている時やどう書いたらいいのか分からない時にMessages from mrhakiで探していますが、 その著者がLeanpubでGroovy Goodness NotebookやGradle Goodness Notebookといった Groovyに関する書籍を販売しており、その一つにSpockに関するものもありました。
購入したもの
これまで購入したのは、以下の3冊です。
まずSpocklight Notebookですが、Leanpubで購入できます。実はWebで全部見れてしまう上に最低価格が$0なので実質Freeなのです。 中身もユースケース毎に細かく分かれているため、自分たちの求めている内容がきっとあると思います。
次に、Groovy in Action, Second Editionですが、こちらは以前にGroovy In Actionを購入していたので、そのまま購入しました。 新しくSpock Frameworkに関する内容なども追記されており、Groovyについてより詳しく知りたい時に役に立ちます。
最後にSpock: Up and Runningですが、現在、Early Releaseとして第3章までリリースされています。2016年の3月くらいにはPublishされるみたいです。 今後追加されていくであろうチャプターのタイトルがどれも興味深いものばかりなので、楽しみです。
購入してはないものの以下の電子書籍もSpockについてのチャプターがあったり、コードが提供されているものがあります。
- Java Testing with Spock
- Making Java Groovy
- BDD in Action
- Arquillian in Action
- Grails in Action, Second Edition
おわりに
Spock: Up and Runningについてですが、Yokohama.groovyにて読書会をやってみようと計画しており、 正式にPublishされ次第、開催する予定です。
最後に、Javaのアプリケーションでテストコードで楽をしたい人は、是非Spock Frameworkを使ってください。
Let’s enjoy, Groovy!