■ [ruby] RUBY_PATCHLEVEL の値 tDiary では footer に RUBY_PATCHLEVEL を表示しているのだけど、1.9.2p0 ではこれが正しく表示されなくて 1.9.2dev と表示されてしまっていた。 というのも、RUBY_PATCHLEVEL に 0 が含まれることを想定していなかったのが原因。ちなみに trunk では 1.8.8/1.9.3 ともに RUBY_PATCHLEVEL は -1 が入っているみたい。 ■ [ruby][rr][rspec] mock と stub mock, mock, stub, stub とは言うものの今日までだいぶ曖昧なまま使ってきていたけど、先週から今日にかけてやっとわかってきた。 btakita's rr at master - GitHub Martin Fowler's Bliki in Japane
Railsのテストフレームワークには、Mockを利用する仕組みがあります。 しかし、通常の方法でMockクラスを作成すると、オリジナルのクラスを 完全に置き換えてしまうため、すべての実装をテスト用に 書き直さなければならなくなってしまいます。 そこで、テスト用に改変したい場所だけMockで上書きし、その他の 動作はオリジナルに委譲する方法を紹介します。 1 require_dependency 'models/foo' 2 3 class Foo 4 def bar 5 puts 'baz' 6 end 7 end 上記のように、require_dependencyを使ってapp ディレクトリ以下のファイルを参照することで、Fooクラスのbar メソッドの挙動だけを置き換えることができるようになります。
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) #
代表中山陽平 ブログ「苦手意識を無くせばWeb活用はうまくいく」弊社では「がんばる中小企業」のWeb活用をサポートしています。今の時代、第3者である、制作会社や代理店におまかせでは勝てません。同じような商品・サービスが溢れる中、選んでもらうためのコンセプトを立て、それを実現するためにネットもリアルも総動員しながら戦う必要があります。 みなさんが世の中に・自社の従業員に実現したい幸せや提供価値を、しっかりと実現していくためには、みなさん自身が主役になり、私達のような専門会社が側面支援するのがベストです。 このブログでは御社が中心となってウェブ活用できるヒントを配信しています。お悩みの方はお気軽に問い合わせフォームからご相談ください。 最新の記事一覧
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く