タグ

2014年4月10日のブックマーク (9件)

  • Rails Testing Antipatterns: Fixtures and Factories - Semaphore

    Rails Testing Antipatterns: Fixtures and Factories Marko Anastasov · 14 Jan 2014 · updated on 25 Apr 2018 · Semaphore Engineering Blog In the upcoming series of posts, we'll explore some common antipatterns in writing tests for Rails applications. The presented opinions come from our experience in building web applications with Rails (we've been doing it since 2007) and is biased towards using RSp

  • RailsでFactoryGirlを使ってみるメモ [俺の備忘録]

    Google+ボタン はてなブックマークボタン 更新日時: 2014年02月25日(火) 作成日時: 2013年08月06日(火) 前の記事 / 次の記事 Fixtureは充分にイケてると思っているので、基Fixtureで満足なんだけど、 Fixtureにできないことをするために、FactoryGirlを使ってみようと思い立ったメモ。 自分が知らないだけでFixtureできるのかも知れないけど、 DBに保存はしないけど値だけ欲しい時がある。 Rspecで言うと "valid_attributes" である値。 今までは自力で適当にモジュールつくって読み込んでたんだけど、 折角FactoryGirlってgemがあるんだから使ってみようかと思った。 ※ 適当にどんどん追加していったらかなり長くなってしまったので 暇が訪れたらまとめて新しい記事にしたいと思う(2014/02/25) 何年後にな

  • すごいぞRSpec(letとlet!編) - @yohfee.blog!

    すでに前回のすごいぞRSpec(shared example group編) - ぷろぐらまねがで登場してるけどあらためてletを調べるよ。rspec-core(2.5.1)/features/helper_methods/let.featureを参考に。 let 要するにメモ化するわけで、同一サンプル内だと同じオブジェクトを使いまわせるのだな。違うサンプルでは改めて評価される。さらに遅延評価なので実際に評価されるのは最初にメソッドが呼ばれたときだ。 $count = 0 describe 'let' do let(:count) { $count += 1 } it 'memoizes the value' do count.should == 1 count.should == 1 end it 'is not cached across examples' do count.shou

    すごいぞRSpec(letとlet!編) - @yohfee.blog!
  • Better Specs { rspec guidelines with ruby }

    translations Documentation RSpec is a great tool in the behavior-driven development (BDD) process of writing human readable specifications that direct and validate the development of your application. On the web there are many resources that give complete overview of _what_ you can do with RSpec. But there are fewer resources devoted to how to create a great RSpec test suite. Better Specs tries to

  • RSpec の入門とその一歩先へ、第2イテレーション - t-wada の日記(旧)

    和田 卓人(@t_wada) 作『RSpec の入門とその一歩先へ、第2イテレーション』はクリエイティブ・コモンズ 表示 - 継承 4.0 国際 ライセンスで提供されています。 #coffee.rb の写経会に招かれた(というよりは押しかけた?)ので、先日の RSpec チュートリアルの続きを記します。このエントリは写経会に参加しながらのライブ更新でした。 (更新) 第3イテレーションも書きました。続きに興味ある方はご覧下さい 前回終了時点のコードと実行結果 前回終了時点でのコードを以下に記します。 message_filter.rb class MessageFilter def initialize(word) @word = word end def detect?(text) text.include?(@word) end end message_filter_spec.rb r

  • RSpec の入門とその一歩先へ - t-wada の日記(旧)

    和田 卓人(@t_wada) 作『RSpec の入門とその一歩先へ』はクリエイティブ・コモンズ 表示 - 継承 4.0 国際 ライセンスで提供されています。 東京 Ruby 会議 03 の RSpec ワークショップの資料です。このワークショップでは参加者の方に「写経」(コードを書き写すこと)をして貰い、TDD/BDD と RSpec を同時に学べるように都度説明を入れるかたちで行いました。 第2イテレーションも書きました。続きに興味ある方はご覧下さい (更新) 第3イテレーションも書きました。続きに興味ある方はご覧下さい 1st iteration favotter の みたいな NG ワードのフィルタリング機能を RSpec で作りましょう。まずは NG ワードの検出機能を作成します。 このイテレーションでは最初ベタな形のテストコードと実装を書き、だんだんとそのコードを洗練させてゆきま

  • RSpec の入門とその一歩先へ、第3イテレーション - t-wada の日記(旧)

    和田 卓人(@t_wada) 作『RSpec の入門とその一歩先へ、第3イテレーション』はクリエイティブ・コモンズ 表示 - 継承 4.0 国際 ライセンスで提供されています。 大きく時間が開いてしまいました(すみません…)、RSpec 入門の第三イテレーションです。 (第3回 coffee.rb の開催に合わせたライブ更新で書かれましたので、まだ詳細の説明は途中のところもあります。) 第1イテレーション 第2イテレーション 前回終了時点のコードと実行結果 この「RSpec 入門とその一歩先へ」シリーズでは、メッセージフィルタを RSpec を使って開発することで、 RSpec の機能と TDD を同時に学ぶことを狙いとしています。 前回終了時点のコードと実行結果をまず記します。 message_filter.rb class MessageFilter def initialize(*w

  • ポイントシステム(6) -- Message Expectation

    前回の末尾で「次はスパイについて書きます」と予告したのですが、改めていろいろと調べてみると私が思っていたのと違っていて、話がうまくまとまりそうもないことが分かってきました。装飾に使うスパイの写真も選んであったので非常に残念ですが、今回は見送ることにします。 ReceptionDesk クラスの責任 前回、「残る課題」として、ReceptionDesk#sign_in のテストが RewardManager クラスの振る舞いに依存しているため、RewardManager クラスの仕様変更によってテストが落ちるようになる可能性がある点を指摘しました。 問題のエグザンプルのコードは次の通りです: specify 'ログインに成功すると、ユーザーの保有ポイントが1増える' do expect { ReceptionDesk.new(customer.username, 'correct_passw

    hasiduki
    hasiduki 2014/04/10
    Rspecのexpectシンタックス
  • Git の便利コマンド色々 〜ソースコードリーディング編〜 - kotakのひまじめ日記

    分散型のバージョン管理システムとして利用者も増えてきた(ような気がする) Git ですが、単なるバージョン管理システムとしての機能以外にも色々と便利な機能があったりします。 今回は、ソースコードリーディングに使える Git の便利なコマンドをご紹介します。 git grep Git で管理されているファイルを grep します。find + grep よりも高速に grep してくれます。 じっくりとソースコードを読み込むのであればタグ管理システムを使いたくなりますが、さっと確認したいというときや、タグで管理できないエラーメッセージを手がかりにソースコードを読むときなどに重宝します。 git grep -e <pattern>として、検索パターンを指定します。パターンには正規表現をつかうことができます。-e は省略可能です。 パターンは複数指定することもできます。--and/--or/--

    Git の便利コマンド色々 〜ソースコードリーディング編〜 - kotakのひまじめ日記
    hasiduki
    hasiduki 2014/04/10
    `git log -p`とか`git log --stat`とか