RSpec についての議論
そんな思いもあって、Everyday Railsで日本版独自にMinitestの章を書き足したいなーと思う今日この頃。それなりにちゃんとしたコードを書いたり読んだりしたらもっと本質的な議論ができると思うのでその一助になれば、と考えたりする。
2015-05-28 12:15:08綺麗で完備で仕様としても使えるテストよりも汚くても不完全でもいいからとりあえず開発者がコードと一緒にコミットできちゃう敷居と意識の低い自動テストのほうが尊いと最近では思っています。このへんはダイエットと似ている。続けるにはいかに意識を意図的に下げるか。
2015-05-28 12:16:541.8時代にRSpecを採用したのは間違いなく成功だったと思ってる。おかげでtest/unit, test::unitの変遷につき合わずに済んだ。
2015-05-28 12:46:32coffee or babel + gulp + browserify + watchify + mocha + power-assert ってのが自分の最近のボイラープレート
2015-05-28 12:46:56ソフトウェアの振る舞いからテストするというBDDの発想は好きだし共感できるけど、覚えないと使えないマッチャーを大量に拵えるRSpecとそのクローンの習慣には共感できない。真偽値を受け取る関数一つで良くないか?
2015-05-28 13:02:32CakePHP扱っていた事もあってRailsにはすぐ慣れたけれど、JUnitを扱った経験があってもRSpecにはなかなか慣れなかったからなー。 文法的にストーリーを自然言語に近い形でテストにしたいのだと思うのだけれど、英語力必要になるし結局は自然言語じゃないし。
2015-05-28 13:48:34でもRSpecはdescribe/contextで階層化できるのでテストケースを追加し易いし、それが何の為のテストケースなのかも分かり易くできるので結構気に入っております。 いちいち`expect(...).to ...`って書くのは面倒だと思うけれど。
2015-05-28 13:55:40RSpec自体への意見は置いといて、Spec BDDをやろうとしたときに、それがちゃんと開発を駆動するかということと実行結果が仕様書(やそれに準ずるもの)として使えるかということと非エンジニアを巻き込めるかというところが気になってて、最近はわりと妥協しがちだなーとは思ってる。
2015-05-28 14:27:34だいたい。思うのが、RSpecってUnitTestingな文脈で語られる事が多い気がするけど、むしろ、もっと上位のテストとして考えた方が良いと思う。
2015-05-28 14:35:48実装に近いテストは、できるだけ実装に近いテストになるんでな、そんなところで、Spec、Specと言ってもしょうがない気がする。だったら、実装と仕様がある程度乖離した場面で、Specとして、DSLとして記述するってのが、BDDなんじゃね?と思うのだな。
2015-05-28 14:39:02RSpecがクソという話はわかりきっているが、だからといってそこで出てくるコード例というか開発スタイルが結構クソなように見えていて、RSpecが不憫になる。
2015-05-28 14:39:14RSpecは俺が書きたいテストコードを書けないからクソって言っているけど、そのテストコードがクソであるということは考えないのかなぁとか。
2015-05-28 14:40:02まぁ、みなさんそもそも何が最高のテストコードをかを考えてから、RSpecを批判したらいいんじゃないですかねとかは外野から思うけど、捨てられない環境もあるんだろうなって思って、つらそう。って感じ。
2015-05-28 14:42:16振る舞いを実行可能な形式で記述して(要件定義)、それをもとに実装をして、実行結果が仕様書になる(ドキュメンテーション)というのが理想的なBDDだと思うんだけど、それを実際にやると超えなければ壁が多すぎてどうすればいいんだ感ある。
2015-05-28 14:49:55RubyでもJSでもいいんだけど、テスティングフレームワークに対する非難を見ていると、だいたい「テスト駆動開発入門」とかそういうのちゃんと読んでないんだろうな。っていう感想しかうまれない。
2015-05-28 14:43:50