RSpecとRubyに関するnysalorのブックマーク (8)

  • VCRを使うとRSpecのWebmockの作成が超絶楽になった!

    RSpecでWebアクセスをするクラスをテストする際にモックの機能を提供してくれるので有名なのが『webmock』です。ただアクセスするWebサイトの数が増えると、Webmock用のデータ作成や管理が面倒になってしまいがちです。そんな時に助けてくれるのが、『VCR』です。 🏈 VCRとは?VCRとはテストで使う『HTTP通信』を1回目に記録しておいて、2回目以降のテストでの実行時間を短縮し、効率的なテストを支援してくれるGemです。Webmockと組み合わせて使うことができます。 🐡 GemのインストールGemfileに以下を追加して、コンソールでbundleを実行してください。

    VCRを使うとRSpecのWebmockの作成が超絶楽になった!
    nysalor
    nysalor 2013/12/11
    次回試す
  • RSpec RailsのAnonymous controllerが便利 - chulip.org

    全てのcontrollerでこのbefore_filterを実行したいという時によく継承元のApplicationControllerで実施することがあります # -*- coding: utf-8 -*- class ApplicationController < ActionController::Base before_filter :check private def check redirect_to 'hoge' unless params[:iphone] end end 例えばiPhoneを持っていない人をリダイレクトさせるとか(特に他意はありません) このテストを書きたい時テストをどこに書くかいつも悩んでいました。 どのcontrollerでも実装されるから、どこかで1回だけテストすればいいか→テストを書いた人且つ書いた時しか場所を覚えてない どのcontrollerでも

    RSpec RailsのAnonymous controllerが便利 - chulip.org
    nysalor
    nysalor 2013/04/22
    これは便利かも
  • Rails使いよspork, zeusからspringへ! | Act as Professional

    Rails application preloader といえば spork や zeus を使っている人もいるかと思います。 今後、期待できる preloader として spring を教えてもらいました。 springはzeusと類似していますが、springはrubyで実装されています。Railsに綿密に統合されているのが他のプリローダーと比較すると大きな特徴です。 Railsコミッターが開発していることからも、今後期待できるpreloaderです。 インストールGemfileにspringを追加します。 group :development, :test do gem 'spring' end$ bundleこれでgemが導入されます。 利用方法springの簡単な使い方です。 $ bundle exec spring Usage: spring COMMAND [ARGS] T

    Rails使いよspork, zeusからspringへ! | Act as Professional
    nysalor
    nysalor 2013/02/08
    後で試す
  • API:jsonをテストする〜Rspec〜

    前に作ったAPIのテストを作ってなかったのでそこのテストを作ります。 テストはRspecを使うのでまずは「test」フォルダを削除します。 次にGemfileを変更します。 Gemfile group :development, :test do gem 'thin', :platforms => :ruby gem 'annotate', :git => 'git://github.com/ctran/annotate_models.git' gem 'rspec-rails' gem 'launchy' gem 'capybara' gem 'database_cleaner' gem 'factory_girl_rails', '~> 1.7.0' end thinはwindowsだと動かないのでdevelopmentだけにしました。 annotateはmodelにdbの内容を書き出

    nysalor
    nysalor 2012/12/06
    今やってるとこ
  • すごいぞ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!
    nysalor
    nysalor 2012/12/05
    letとlet!の違いは意外と落とし穴かも
  • 追記: Rails, RSpec, Spork(, Guard) で適切にクラスをリロード - 情報と音楽

    以前 Rails, RSpec, Spork(, Guard) で適切にクラスをリロード という記事を書いたんですが、あれだとロケールファイルをリロードしてくれないという問題があって、調べてたら、もっとシンプルな書き方ができたので、紹介します。 確認したバージョンは下記のとおり。Rails のバージョンがちょっと古いとだめかも。 rails 3.2.6 rspec 2.11.0 spork 0.9.2 guard 1.2.3 config/environment/test.rb は前回と変わりません。Spork 使うときだけ cache_classes を false にします。 # config/environment/test.rb Blog::Application.configure do # Spork 使用時はクラスをキャッシュしない if defined?(Spork) &&

    nysalor
    nysalor 2012/10/05
    後で読む
  • 私はRSpecでテストをこんな感じで書いてる - アジャイルSEを目指すブログ

    私がRSpec使ってテスト書く時はこんな感じで書いてるよ〜ってのを書いてみた。*1 テストを書く順番について TDDでコードを書く場合、先にテストを書く事になります。 そして、そのテストを書く順番ですが、私は下記のような順番で書くように意識しています。 設計する describe を書く itを書く subjectを明確にする before(context)を明確にする その他に、気をつけている点はこんな感じ 別のメソッド呼ぶ時は基的にstubなどで潰す contextは「〜の場合」、it は「〜であること」になるようにする 一つずつ、詳細を書きます。 設計する テストを書き始める前に、まず実装しようとしてるクラス、メソッドを簡単に設計します。 少なくとも、「クラス名」「クラスメソッド or インスタンスメソッド」「メソッド名」「メソッドの戻り値」ぐらいは決めます。 describe を

    私はRSpecでテストをこんな感じで書いてる - アジャイルSEを目指すブログ
    nysalor
    nysalor 2012/10/05
    後で読む
  • Railsのコントローラをテストする

    前回はインテグレーションテストとしてCucumberでテストを作成しました。今回はユニットテストとして、RSpecを使ってコントローラのテストを作成します 前回はインテグレーションテストとしてCucumberでテストを作成しました。今回はユニットテストとしてRSpecを使ってコントローラのテスト(RSpecのテストコードは“スペック”と呼ばれるので、以降はスペックと呼びます)を作成します。稿で紹介するスペックの全文はGitHub上にあります。 最初に、コードレビューの回で述べたコントローラの役割についてもう一度おさらいしてみましょう。 コントローラは外部から来たリクエストを受け付け、レスポンスを返すのが役割です。具体的には以下の3つの動作をおこないます。 適切なオブジェクトをとってくる オブジェクトに対する何らかの操作を指示する 操作が成功した際と失敗した際のビューの振る舞いを指定する

    Railsのコントローラをテストする
    nysalor
    nysalor 2012/08/07
    後でおさらい
  • 1