ヱビスブログ :: ユーザストーリーから始めるTDD TDD from starting from user stories - a top-down styleを日本語でザックリまとめました。 意味を明らかに取り違えているようなところがありましたら指摘してください。 ------------- TDDのルールは最初にテストを書く事だ。現実世界のプロジェクトの多くは、ソフトウェアがGUI、Web、データベースや外部システムとの依存を含んでいる。大概これらはJUnitクックブックのサンプルほどシンプルではない。プロジェクトが異なれば、TDDの実装方法も異なる。例えばテスターが受け入れテスト記述の責務を取り、開発者はユニットテストを書く。TDDer向けにユーザストーリーから始めるトップダウンなTDDスタイルを提唱したい。 ユーザストーリーから始めるTDD What? ユーザスト
まずはUserモデルのインスタンスのフリをするmockオブジェクトをbeforeで作っておきます。 Rspecの例などを見てみると、そのmockオブジェクトやPersonクラスにとstubを定義したりしていますが、今回のログイン仕様ではUserモデルのインスタンスは作らないので用意していません。 で、ログインが成功する部分の仕様を書きます。 it "should log in" do User.should_receive(:authenticate).with("abe@mail.com", "abe_pass").and_return(@user) post "login", {:email => "abe@mail.com", :password => "abe_pass"} response.should be_redirect response.should redirect_t
Mock Object Mock Objectの作成 my_mock = mock(<name>) my_mock = mock(<name>, <options>) person = mock('person', :null_object => true) Mockは名前を引数に取る。仕様の検証が終わった際に全てのMockが検証される。 option引数をハッシュで与えることでMockの振る舞いを調整できる。現在、:null_objectのみがサポートされている。:null_object => trueを引数に渡すとMockに対する全てのメソッドがMock自身を返すようになる。 Mockに対してスタブメソッドを定義する person.should_receive(:name) # person.name => nil person.should_not_receive(:name) #
管理が不徹底であった云々の糾弾は結構なのだが年金記録の問題の核心はヒューマンエラーと世代をまたぎかねないデータベースの維持に関する問題である。つまりこれは社会保険庁という不良官僚が引き起こした固有の問題ではなく、どのような会社でも今後起こりえる普遍的問題が根底にある。 これを贖罪の羊に満足して放置すれば遠からず同様の問題がまず類似する保険会社、大手企業などから順に噴出すだろう。 年金はその記録の始まり(加入)してから記録が利用(支給)されるまで45年ある。ピッチャーが腕を振ってから45年後にキャッチャーのミットにボールが入るようなものだ。 国民年金は1961年に制度が発足したのだが、45年も事業をやっていて何故ミスに気が付かなかったのかというよりも、団塊という世代ボリュームも迎えようやくミスがミスとして発現し始めたと考えるべきだろう。 例えば、自分がまとめたある仕様が100年後にどのように
子供が元素の周期表を勉強していて、「なんでこんなものを覚える必要があるのか」と言うので、次のように説明してみた。 デスノートの悪魔みたいな奴がひまつぶしに人間世界を覗きに来た。この悪魔には、不思議な眼力があって、人間を見るとその人間の所持金合計(現金のみ)とその現金の重さを見ることができる。 たとえば、1万円札を1枚だけ持っている人なら、「所持金 10000、重量 (1万円札1枚分の重さ)」という二つの数字が見える。しかし、この悪魔には、この二つの数字の意味がわからない。だから、単なる無意味で関連のない二つの数字が並んでいるとしか思えない。同じ金額の持ち主でも金種の組合せによって重量が全然違う。金額が大きくても重量が小さい人もいるしそうでない人もいる。悪魔には財布の中身を見ることはできないので、どういうルールで二つの数字が並んでいるのか全くわからない。 人間が物質を観察しているのは、この悪
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く