気になってたSpockを試してみた
Groovy!(挨拶)
はじめに
SpockはGroovy製のBDDフレームワークです。前から気になっていた*1ので是非試してみたいなと思っていたら、 id:backpaper0 さんが はじめてのSpock - 裏紙 で試していたので、私も試してみました。といってもやった内容はほぼコピペ。いわゆる手抜きってやつです。
試してみる
とりあえず、わざと失敗してみる (worldの!がない)
@Grab('org.spockframework:spock-core:0.5-groovy-1.7') import spock.lang.* class HelloSpec extends Specification { def '名前を呼んで挨拶する'() { expect: say(name) == message where: name | message 'world' | 'Hello, world!' 'fumokmm' | 'Hello, fumokmm' } def say = { "Hello, $it" } }
結果
JUnit 4 Runner, Tests: 1, Failures: 1, Time: 23 Test Failure: 名前を呼んで挨拶する(HelloSpec) Condition not satisfied: say(name) == message | | | | | world | Hello, world! | false | 1 difference (92% similarity) | Hello, world(-) | Hello, world(!) Hello, world at HelloSpec.名前を呼んで挨拶する(ConsoleScript5:6) Result: org.junit.runner.Result@11e85928
分かりやすいなぁ。しかもシミラリティとかまで出してくるあたり、惚れるなぁ…。
修正版
@Grab('org.spockframework:spock-core:0.5-groovy-1.7') import spock.lang.* class HelloSpec extends Specification { def '名前を呼んで挨拶する'() { expect: say(name) == message where: name | message 'world!' | 'Hello, world!' 'fumokmm' | 'Hello, fumokmm' } def say = { "Hello, $it" } }
結果
JUnit 4 Runner, Tests: 1, Failures: 0, Time: 40 Result: org.junit.runner.Result@3851ddd2
おわりに
今後はテストはSpockで書くよ!
Spockな記事
はじめてのSpock - 裏紙
BDDフレームワークspockのドキュメントの翻訳 - Grな日々(uehajの日記)
Grails goes on: spockを使う
SpockInJapanese — metametaweb
JGGUG総会+スペシャルG*ワークショップ ふりかえり - bikisuke IN ACTION
Spock試してみた。 - さいないぷは達人になりたい
参照
本家:
spock -
the enterprise ready specification framework - Google Project Hosting
Maven Repository: Maven Repository: org.spockframework » spock-core
*1:[http://d.hatena.ne.jp/fumokmm/20110417/1303052997:title=これ]のテストのところでも触れていたし。