2004-07-31(Sat) [長年日記]
■1 xSpecとjBehave
ま た c o d e h a u s か ! ! !
xSpecという考え方がある(らしい)。xUnitによる単体テスト、あれはテストではない、仕様だ。なのに「テスト」と呼んでしまっている。だから、従来からの伝統的なテストの概念やQA部門と開発チームとのあいだに混乱と軋轢が生じる。名前重要。
テストケースと呼ぶから、プロダクトコードの後にユニットテスト書くような輩が絶えない。テストではなくスペック(仕様)と呼べばよい。仕様をプロダクトコードの前に書くのはフツウだ。これまでだってそうしていたはず。
で。このxSpec的概念を実装していると思しきライブラリが、jBehave
。テストメソッドはtest[DoSomething]ではなく、should[DoSomething]。assertEqualsではなくVerify.equal。
——と、脊髄反射的に書いてしまったが、そもそもフライパン氏のxSpecの話って私は機会がなくてちゃんと聞けてなかったり。軽くググってみたけど、よくわからない。
verify? should?
とあるけれど、いまやってるプロジェクトではテストメソッド名は「testShuoldDoSomething」となっていることが多い。テストメソッド本体のいわゆるassertの部分では、Mockをたくさん使っているところはmock.verifyになっている(なってしまう)。メソッド名で表明(should〜)して、本体で検証(verify)する、というのはそんなにおかしい話でもないと思うのだがいかがか。ご参考まで。
jBehave、使用上の注意
jBehave は現在、安定した1.0版リリースに向けて、ガリガリ開発中。なので、いまのところは本番プロジェクトでの採用はオススメしません。けれど、開発版やスナップショット版を試して、フィードバックをもらえるととても嬉しいです。α版、β版、そして最終リリースのアナウンスはメーリングリストに流します。
JUnitからのスイッチングコストが気になる。いまやEclipseからの手軽な実行と、Maven(Antでもいいけど)からのバッチ実行&レポート生成ができないと、代替品としての捺印ナビリティはお話にならない。今後に期待しつつ、生温かく見守りたい。
■2 「Don't Mock Me: Design Considerations for Mock Objects」
xSpecの話題がADC2004のサイトのどこから辿れるかと思ったのだが、果たせず。その過程でExperience Reportsの中に、上述タイトルのペーパーを発見。PDFをざっと眺めたら、きわめて実践的(当たり前か)な印象だったので、近いうちに読んでみよう。
リーン開発の現場 カンバンによる大規模プロジェクトの運営(Henrik Kniberg/角谷 信太郎/市谷 聡啓/藤原 大)
『なるほどUnixプロセス ― Rubyで学ぶUnixの基礎』
SCRUM BOOT CAMP THE BOOK(西村 直人/永瀬 美穂/吉羽 龍太郎)
実践テスト駆動開発 テストに導かれてオブジェクト指向ソフトウェアを育てる(Steve Freeman/Nat Pryce/和智 右桂/高木 正弘)
The RSpec Book (Professional Ruby Series)(David Chelimsky/Dave Astels/Zach Dennis/角谷 信太郎/豊田 祐司/株式会社クイープ)
アジャイルサムライ−達人開発者への道−(Jonathan Rasmusson/西村 直人/角谷 信太郎/近藤 修平/角掛 拓未)
アジャイルな見積りと計画づくり ~価値あるソフトウェアを育てる概念と技法~(Mike Cohn/マイク コーン/安井 力/角谷 信太郎)
インターフェイス指向設計 ―アジャイル手法によるオブジェクト指向設計の実践(Ken Pugh/角谷 信太郎(監訳)/児島 修)
アジャイルプラクティス 達人プログラマに学ぶ現場開発者の習慣(Venkat Subramaniam/Andy Hunt/木下 史彦/角谷 信太郎)
JavaからRubyへ ―マネージャのための実践移行ガイド(Bruce A. Tate/角谷 信太郎)










xSpecは私の考えで、フライパン氏に聞いたのはjBehaveのほうでした。なのでADC2004をいくら探してもxSpecは見つからないと思います(笑)
いっぱい食わされたー。でも、Mockのペーパー見つけられたからいいです(w