28032012 life
なかなか、面白かった。
真面目な内容を期待すると裏切られた感が得られるが、行間とか内容の本質を考えながら読めばそれなりに得られるものがあると思う。
僕の場合は参考になることが多かった。
28032012 life
なかなか、面白かった。
真面目な内容を期待すると裏切られた感が得られるが、行間とか内容の本質を考えながら読めばそれなりに得られるものがあると思う。
僕の場合は参考になることが多かった。
26032012 life
21032012 life
最近モナド、継続に続く第三の悟りを体験した。それが「モックとスタブの違い」
自分の言葉で表すとすれば、
テスト関心空間の内側にあるのがモックで外側がスタブ
といったところか。
発端はPython Testing: Beginnerでmockerを使っていたのだけど、verifyメソッドの存在意義がよく分からなかった(モックとスタブの違いを理解した今なら、verify必要に決まってんじゃんと言えるわけだが)。
悟りに至るまでにいくつかのサイトを読んだ。
スタブに関しては割りと容易に理解できる。モックとスタブの違いなんかに書いてあるように要するにスタブアウトですね。外界とのインタラクションを絶ち切って(debouple)状態にテストの関心を集中するわけだ。
で、問題はモック。Mock と Stub についてによると
Mock と Stub の違いはテストの観点の違いです。相互作用(振る舞い)中心のテストに利用するのがMockで、状態中心のテストに利用するのがStubです。
これだけだとわからないが、次のパラグラフを読むと
相互作用中心のテストとはテスト対象のシステムと外部のコンポーネントとの間で正しいやり取りがされるかのテスト、いわばプロトコルのテストです。外部のコンポーネントは Mock により置き換えられ、システムから正しい呼び出しがなされているかを監視します。
この文章でモックが何をデカップリングしようとするのかがおぼろげながら見えてきます。
したがって、例えばWebアプリの Controller の単体テストにおいて相互作用中心のテストが正しく行われてパスしているならば、Model が正しく実装された時に Controller が正しく動作するということが、Model が実装されなくても保障されます。
つまり、モックオブジェクトが期待されたとおり過不足なく呼び出されているかを調べるverifyはモックのテストにおいては重要な機能なわけだ。
実際にモックのテストを見ていると、内部の動作知ってないとテストかけないじゃんと思うんだけど、それはモックが必要な場面、モックが有効な場面に書いてあった。
でも、話を聞く限りだとモックというのはテスト対象の実装の中の処理の流れを追う物のようなので、それじゃブラックボックステストにならないじゃないかと思った。それをそのまま言ったら、確かにテストはできるだけブラックボックステストになってた方がいいけど、機能テストやインテグレーションテストのような粒度の大きな単位のテストでは、処理の中で起こる様々な出来事や副作用を色々モニタリングして、すべての処理が期待通りに動いているかどうかを検証しないといけないから、必然的にホワイトボックステストにならざるを得ないと言われた。
僕の場合はここまで読んだら、あーモックとスタブの違いってそういうことなのか!となったので参考になればと思い、メモっておく。
19032012 life
久しぶりにジムに行ってガツッと走って帰ってきたら、娘と息子が待ち構えていてダンゴムシ探しに付き合わされた。
紫陽花の芽が。春ですな。
ダンゴムシを二匹ゲット。
虫かごに入れてお持ち帰り(後で逃がす)。
18032012 life
娘が小学生になるので、机をリビングに持ってきて、いろいろレイアウトを変更した。
そのせいで、ノートブックをだらだらいじるという自分の居場所が無くなってしまった。特に電源をどこに用意するか悩んでいる。
18032012 life
初代がリコール対象だってことを教えてもらったので、早速修理に出したら8GのiPod nanoになって戻ってきた
フィットネスっていう機能がついてた。これを買えばいいのか
ホイールが無いので運転中は操作しにくい。
暖かくなってきたのでそろそろジムを退会しようかと思っている。 家の周りを走るのになんかいいアプリないかな
AndroidだとJogTrackerになるのかな?
17032012 life
息子が「あそんでみたいねー」って言うので、「いいねー!でもパパお金ないよ?」って言っておいた。
こっちでもいいような気もするが
13032012 life
本を買うのを2ヶ月ほど自粛すればこのレンズが買える。
が、こっちのほうが欲しいかもしれん。
先日ボードトリップにいった帰りの車のなかで、@logicraftが
写真っていうのは撮るときには構図が既に頭の中にあってですな、シャッターを押すっていうのは単に切り取るだけであって云々
と熱く語っているのを、ふーんそんなもんなのかと聞いていたのだけど、その後にちょうどはじめての編集を読んだら、
写真っていうのは自分の主観に基づいて主題を決めてストーリーをつくるんだから、結局フィクションじゃないか!と腑に落ちた。写真って面白そう!って思ったので少し撮れるように勉強してみるかと。
DJingも似たようなもんですね。主題を決めて曲を自分なりに解釈してストーリーとして編集し直す、その過程が楽しい。