This is the slides used in Rails Pacific 2014 "Testing Workshop".
This is the slides used in Rails Pacific 2014 "Testing Workshop".
はじめに RSpec 3が正式リリースされて2ヶ月ほど経過しました。(正式リリースは2014年6月) ネットの情報を見ていると、これまでは「既存のテストケースをRSpec 3にアップグレードさせる方法」や「RSpec 3で削除されたり、記法が変わったりした点」など、「守りの姿勢」に入った情報が多かったように思います。(僕自身もそういう情報をたくさんアップしていました) しかし、RSpec 3では以前のバージョンでは使えなかった新しい機能も数多く導入されています。 そこで本記事では「攻めの姿勢」で「RSpec 3から導入された新機能」をまとめてみました。 なお、ここでフォーカスするのはテストコードの書き方にダイレクトに関わってくるマッチャの新機能です。 2015.01.12:RSpec 3.1に関する情報を追記しました RSpec 3.1に関する情報も追記しました。 もともと紹介していた新機
怖話はminitestに書き換えつつあるんですが、Bizerでは他の開発者に気を使ってrspecを使っています。 Bizerをrails4.1に上げたので、「ヒャッハー、デフォルトでtravel_toが使えるからtimecop削除できるぜー!」と思ったのですがrspecじゃそのままじゃ使えない。(クソがぁ Before: it 'coupon is expired.' do # FIXME: travel_to in rails 4.1 Timecop.travel(2014, 5, 10, 0, 0, 0) do expect(expired_coupon_user.free_by_coupon?).to be_false end end After: # spec/spec_helper.rb: RSpec.configure do |config| config.include Ac
2013-06-24 RSpec Expectations 2.14 - マッチャーのまとめ 更新 : 2013/08/18 Rails Test RSpec https://www.relishapp.com/rspec/rspec-expectations/docs の一部の意訳を中心にまとめてみた。RSpec Core 2.14 - 基本的なメソッドのまとめ http://a-few-resources.hatenablog.com/entry/2013/06/23/230946RSpec Mocks 2.14 - Test Double, Method Stub, Message Expectation http://a-few-resources.hatenablog.com/entry/2013/06/25/191323Basic structure expect(actu
Myron Marston » Notable Changes in RSpec 3の雑な訳です。 誤訳・雑すぎる訳がありましたら、Twitterで@nilp_までご連絡頂けると助かります。 RSpec 3.0.0 RC1が2日前にリリースされました、そして最終的な3.0.0のリリースが目前に迫っています。 我々はβ版をここ6ヶ月にわたり使ってきました、我々はそれらを皆さんと共有できることにわくわくしています。 これが新しいとこだよ: すべてのgemたちにわたって Ruby 1.8.6と1.9.1のサポートがなくなりました これらのバージョンのRubyはかなり前に寿命を迎えました、RSpecはこれらをサポートしません。 Ruby 2.xのサポート向上 最近のRSpec 2.xのリリース(すなわち2.0がリリースされたあと出たやつ)はRuby 2を公式にサポートしています、しかしRSpec
I have a model class that caches data in redis. The first time I call a method on the model, it computes a JSON/Hash value and stores it in Redis. Under certain circumstances I 'flush' that data and it gets recomputed on the next call. Here's the code snippet similar to the one I use to store the data in Redis: def cache_data self.data_values = data_to_cache REDIS.set(redis_key,ActiveSupport::JSON
Myron Marston » New in RSpec 3: Composable Matchersの訳です。 あかんところあったらTwitterで@nilp_までお願いします RSpec 3の、最も大きな新機能が3.0.0.beta2で公開されました: コンポーザブルマッチャ(組み合わせ可能なマッチャー)です。 これにより強力で壊れづらい検証を書けるようになり、新たな可能性が開けました。 例 RSpec 2.xでは、私はこのようなコードを度々書いてきました。 class BackgroundWorker attr_reader :queue def initialize @queue = [] end def enqueue(job_data) queue << job_data.merge(:enqueued_at => Time.now) end end describe Back
はじめに 以前から何度か紹介しているRSpec本の翻訳が終了し、ついに販売を開始しました! 提供フォーマットはMOBI(Kindle)、EPUB(iBooks)、PDFで、下記のページから購入できます。 Everyday Rails - RSpecによるRailsテスト入門 - Leanpub 今回は改めてこの本の紹介を書いてみようと思います。 「Everyday Rails - RSpecによるRailsテスト入門」ってどんな本? 「Everyday Rails - RSpecによるRailsテスト入門 ~テスト駆動開発の習得に向けた実践的アプローチ~」はタイトルの通り、RSpecを使ったRailsの自動テストを説明した技術書です。 内容としては比較的易しめで、そこまで高度な話題は出てきません。なのでRSpecの未経験者~中級者かつ、Railsを使って開発している技術者がターゲット層にな
What’s a Matcher? expect(dan.current_zipcode).to eq(10002) In the line above, the matcher is the method eq because RSpec will check to see if the value of dan.current_zipcode matches 10002. Let’s say that this was a line you wrote for as part of a test for a location tracking app. You want your code to be as clear as possible for collaborators or even for your future self. Wouldn’t it sound even b
RSpec documentationの「Shared Example Groups」に説明がありますが、「shared_examples_for」を使用して同じexampleを複数のテストで共有することが可能です。 「shared_examples_for <共有exampleグループ名>」で共有するexampleのグループ(「Shared Example Groups」と呼ばれるらしい。)を作成し、 共有したいテスト内で「it_should_behave_like <共有exampleグループ名>」としてexampleを取り込めばOK モジュールをincludeする感じですな。 exampleだけでなく、beforeやafterも共有できます。 # shared_examples_for で 共通のexampleを定義。 shared_examples_for "shared" do
Ruby on Railsプログラマーのための「RSpec/Capybara入門」を連載します。Railsを学習中の初心者がテスト駆動開発(TDD)あるいはビヘイビア駆動開発(BDD)を実践するための基礎的な知識や考え方を説明していきます。 メインテーマはRSpecとCapybaraですが、factory_girl、Database Cleaner、Zeusなどの関連するGemパッケージも途中で紹介していく予定です。また、CSSセレクタやXPathについても簡単に解説することになるでしょう。 いちおうRubyとRailsの基礎知識を話の前提としますが、初心者を念頭に置いて丁寧な説明を心がけます。 できるかぎり具体的にコーディングと操作手順を示すつもりです。実際に手を動かしながら読み進めると、より理解が深まるでしょう。 記事一覧 イントロダクション (2013/08/14) RSpec/Ca
Validationのお作法をまとめてみました バリデーションの基本的なパターンは存在性、長さ、フォーマット、一意性の確認となります。 整理のため、これら4つの処理をRailsで行う際のお作法をまとめてみます。テストコードも最後に付記しています。 存在性の検証 Userというname、emailを持つクラスを考えてみます。 「presence: true」で存在性を確認することができます。 class User < ActiveRecord::Base attr_accessible :name, :email validates :name, presence: true end 長さの検証 同じくUserクラスで長さの検証を行います。名前が長すぎると困るので50文字に制限した処理にします。 length: { maximum: 50 }を付けることで検証が可能です。 class Use
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
この記事はRuby Advent Calendar 2013の6日目の記事です。 昨日はShindo200さんのRuby で paiza.jp のオンラインハッカソン問題に挑戦するときに少し役に立ちそうなことでした。 概要 Rubyのデファクトスタンダードなテストフレームワークと言えるRSpecですが、現在バージョン3.0のリリースへ向けて開発が進められており、先日2013年11月8日には3.0.0.beta1がリリースされました。 この記事ではRSpec 3における変更点と、RSpec 3へのアップグレード手順、また既存のspecを最新の記法に変換するツールを紹介します。 追記 RSpec 3は2014年6月2日に正式リリースされました。この記事は2013年12月6日に書かれたものですが、正式版においても通用する内容になっています。 正式版における主要な変更点は、以下のページが参考になる
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く