BDD

BDDエンジニアマインド Vol.8で初めて知ったんだけど3年ぐらい前に既に登場してたんだね。
確かにTDDは振る舞いというかスペックを分かっていないとできない(そこがメリットの1つでもある)から、TDDバリバリの人にとってはbehaviour-drivenというアプローチは納得できるだろう。
しかし、TDDをなんとなくしか理解しておらず、単体テスト用にしかxUnitを使っていない人にとっては、「何がいいわけ?」と思うのではないだろうか。
るびまはすごく良い説明だと思うが、これを読んでも「xUnitで同じことできるじゃん」と思う人は多いだろう。
結局、最低限のクラス抽出はしなければいけないしね。
TDD,rspecにおける「スペック」ってようは抽出したクラスのスペックなんだよね。
で、もう一段階上というか手前のレベル、ようは要求仕様か基本設計におけるスペックに対してBDDができないもんかなあと思っていた。
そしたらありましたよ。Javaだけど。*1
このチュートリアルrspecでできることと同等ぽいけど、これなんかはまさに要求仕様に対するBDDじゃない?
でも、実はダウンロードしたサンプルコード見てもよく理解できなかった。ほとんど情報ないし。
StoryRunnerクラスから実行するというのは何とか分かったけど。
ちなみにshouldメソッドを実行する場合は、BehaviourRunnerから実行する。


これをうまく活用できれば自分が考えている理想の開発スタイルに近づくんじゃないかな。


BDDは結構インパクトあると思うんだけど、それほど盛り上がっていないような・・・。
書籍は今のところFoundations of Rspec: Behavior-driven Development With Ruby and Rails (Foundations S)だけぽいし、情報が少なすぎるからかな。
The Pragmatic Bookshelfから出るらしいけど、まだアナウンスされてないね。
出たら読みたいぞ。


まだ盛り上がっていないということは逆に今がチャンスってことか。

*1:Ruby版もあった。