#devlove2012a 2012/12/16 DevLOVE2012 Day2 13:00〜 テストに開発をもっと駆動させたい
諸橋「コードを書いて動かしたいという『基本的な』欲望に対する答えとして、テストを書くという方法がある。もちろん、テストを書かずとも、irbとかmainを書くとかいろいろな方法はある。」#devlove2012 #devlove2012a
2012-12-16 13:11:15インタラクティブシェル的なものがあれば簡単なコードは動かせるけど、ちょっと複雑なものになるとダメ #devlove2012a
2012-12-16 13:11:30諸橋「だが、irbなどで実行出来るのは単純なコードであって、複雑になると結構しんどい。」#devlove2012 #devlove2012a
2012-12-16 13:11:52"コードを書いたら動かさずにはいられない..." -> その(本能的)欲求に応えるためには「テストを書く」ってのは良いよね! #devlove2012a
2012-12-16 13:12:38諸橋「しんどさの部分。例えばデータなどの準備。2回動かしても大丈夫?実行結果の確認は目視とか。」#devlove2012 #devlove2012a
2012-12-16 13:13:08データの準備とか、結果の確認(目視)とか、実行順序とか気にしないといけない→テスティングフレームワークはそういう面倒くさいものをうまいことやってくれる #devlove2012a
2012-12-16 13:14:26"データを準備する","結果を目視する","実行順通りに動かす" を毎回手動でやるのはしんどいよね... -> "そこでテスティングフレームワークですよ" #devlove2012a
2012-12-16 13:14:45@sue445 さんのツイートを見ていると、 #devlove2012a は多分平行次元に2つ存在する。私ももうひとつの方に行きたい。
2012-12-16 13:14:51諸橋「そこで登場するのがテスティングフレームワーク。Arrange(データやコンテキストを用意)、Act(それぞれ独立に動かし),Assert(結果のチェック)を行ってくれる」#devlove2012 #devlove2012a
2012-12-16 13:14:52諸橋「テスティングフレームワークは、ちょっと大きいコードを自分が狙ったところだけ動かすことができるのが大きなメリット。」#devlove2012 #devlove2012a
2012-12-16 13:18:16テスティングフレームワークはそこそこの大きさのコードを手早く、狙ったところだけ動かせるのがメリット #devlove2012a
2012-12-16 13:19:20TDDを浸透させるための説得文句として「事前条件は?結果は?どういう作り方が?」ってのは予め当たり前のように考えているわけだから、そのプロセスでテストコード書いとくと後の検証便利よ。ってのはいいかなと思います。 #devlove2012 #devlove2012a
2012-12-16 13:21:32諸橋「コードを書くために考えることは二種類有る。『何をするか』と『それを実現するためにはどうするか』」#devlove2012 #devlove2012a
2012-12-16 13:22:19諸橋「『何をするか』と『実現方法を考える』ことはぐるぐる行ったり来たりしている感じ。」#devlove2012 #devlove2012a
2012-12-16 13:22:25ユーザはシステムに何をしてほしいか、開発者としてオブジェクトにどうして欲しいか #devlove2012a
2012-12-16 13:22:31諸橋「はじめる!Cucumberは達人出版会で販売中です。http://t.co/3sLfb0If」#devlove2012 #devlove2012a
2012-12-16 13:23:33何をするかをテストとして落とし込むためにまた考えて・・・って無限ループにハマるのが俺なんだけど、それって俺だけ? #devlove2012a
2012-12-16 13:24:52(ユーザ|開発者)として(システム|オブジェクトetc)に「なにを」して欲しいのか考える -> その「なにを」するかをテストとして書く。「どうやって」するかを考えて実装する..というお話。 #devlove2012a
2012-12-16 13:25:48