阿部です。
>> 後半分は、複数のメソッドを利用するテスト(別発言にあるDBアクセスとか)
>>などは、例えばinsertとselectが両方実装できていないとテストが成功しない、
>>という意味では単体の実装より後回しにしているという事です。
>
>この場合には、insertのテストを書いて、insertを実装して、
>selectのテストを書いて、selectを実装して・・・
>という流れになるのではないでしょうか。
>
>ですから、阿部さんのされているのは立派に「テストファースト」
>になると思いますよ。
誤解というか、強い思い込みがあったようです。
insertのテストでは、正常な終了コードが返ってくるだけではなく、selectして
取得した値がinsertしたものと等値である必要がある、と判断したのですが、
そうなるとinsertテストはselectができるまで終わらない。selectとinsertの
両方を実装しきるまで(それぞれ1日ずつと仮定して)コミットしないのは
チーム開発の流れのリズムを保つには良くない。よってテスト・ファーストは
守りきれない、と考えていました。
この場合「テストを100%通らない限りコミットしない」というルールと
「insertとselectの複合テストまで先に書く」という行為、そして「チーム開発
のリズムを保つには毎日コミットすべき」というルール(?)が一部矛盾して
しまったようです。テスト・ファーストをもう少し柔軟に捕らえるのが、この場合
一番いいんでしょうね、たぶん。
まだまだ試行錯誤中なので、どの段階でどうテストコードを書くべきか、
タスクの分解の基準などを他のメンバーと話し合って決めていきたいと思います。
では。
-------------------------------------------------------------
Takashi Abe <abetaka@....jp>
HP: http://homepage1.nifty.com/taka-page/
合気道 薫友会 : http://homepage2.nifty.com/kun-yu/index.html
-------------------------------------------------------------