Rails で開発していると、実際に使っている DB のデータを、テストで使用したい場合があります。 そのような場合、seed_dump と activerecord-import を使ってうまく実現することができました。 Gemfile group :development do gem 'seed_dump' end group :test do gem 'activerecord-import' end 使わない環境では、gem を読み込まないようにします。 script/dump_models.rb DUMPED_MODELS = [Site, Category, SubCategory] OUTPUT_FILE = 'spec/fixtures/seed.rb' DUMPED_MODELS.each_with_index do |model, i| options = { app
class Example def self.class_method 'This is real class method' end end スタブの作り方 allow でクラス名を指定する。 receive でメソッドを指定する。 and_returnでメソッド実行時の戻り値を指定する。 require 'spec_helper' describe do before do allow(Example).to receive(:class_method).and_return('This is stub class method') end it do p Example.class_method end end
はじめに みなさんこんにちは! この記事は「必要最小限の努力で最大限実戦で使える知識を提供するRSpec入門記事」、略して「使えるRSpec入門」の第3回です。 今回はRSpecのモックを使ったテストについて説明します。 これまでモックを全く使ったことがない人でもわかるように丁寧に説明していくつもりです。 また、これまでの回と同様、個人的に使用頻度が低いと思っている内容についてはバッサリ説明を省きます。 ただし、第1回や第2回に比べるとテストコードが少し複雑になって、仕組みや動きを想像するのがちょっと難しいかもしれません。 ぱっと頭に入ってこない場合はじっくり本文を読んだり、実際に自分で写経しながらコードを動かしたりするなどして、少し時間をかけながら理解するようにしてください。 今回は以下のような内容を説明します。 モックの基本的な使い方 モックを使った検証 モックでわざとエラーを発生させ
Shoulda-machersを使うと素晴らしく簡潔かつ直感的にテストをかけるようになるので導入してみることに。しかしインストールして試してみたはいいものの、どうにもこうにも NoMethodError: undefined method `validate_numericality_of' などとあらゆるメソッドが無いよ、とエラーが吐かれハマったのでメモ。パーフェクトRuby on Railsのサンプルコードでハマった方は特におすすめ。 環境 Rails 4.2.6 rspec-rails 3.4.2 shoulda-matchers 3.1.1 導入方法 1. Gemfileにrspec-railsとshoulda-matchersを追加 # /Gemfile # development・test環境双方でrspec-railsが必要 group :development, :test
Sam Phippen, Myron Marston, Jon Rowe and Yuji NakayamaJul 1, 2016RSpec 3.5 がリリースされました! 私たちは semantic versioning に準拠する方針を掲げているため、 このリリースはすでに RSpec 3 を使っている方にとってなにか対応が必要になるものではありません。 しかし、もし私たちがバグを作り込んでしまっていた場合は教えてください。 できるだけ早く修正をし、パッチ版をリリースします。 RSpec は世界中のコントリビュータと共に、コミュニティ主導のプロジェクトであり続けます。 今回のリリースには、50 人以上のコントリビュータによる 600 以上のコミットと 150 以上の pull request が含まれています! このリリースに向けて力になってくれたみなさん、ありがとう! 主要な変更 C
WebアプリケーションのHTTPレベルでの振る舞いに対してテストを記述するとき、皆さんはどのような考えを持ってテストコードを記述しているでしょうか。この投稿では、この手のrequest-specと呼ばれるテストについて考えながら、テストを書くときの幾つかの方針と、RSpec::RequestDescriberを利用してテストコードを簡略化する方法を紹介します。 request-specとは request-specという、HTTPにおけるリクエストとレスポンスの組み合わせを、言わばブラックボックスとして扱うテスト形式の呼び名があります。リクエストを入力、レスポンスを出力として扱い、ある入力に対して期待される出力が返されるかどうかをテストします。rspec-railsの中では、request-specに対して以下の説明が与えられています。 Use request specs to speci
はじめに みなさんこんにちは! この記事は「必要最小限の努力で最大限実戦で使える知識を提供するRSpec入門記事」、略して「使えるRSpec入門」の第2回です。 今回はRSpecのマッチャについて説明していきます。 第1回と同様、今回も「最低限これだけは」という内容に絞り込んで説明します。 使用頻度の少ないマイナーなマッチャ(注:僕基準)については説明しません。 具体的な項目は以下の通りです。 マッチャとは何か to / not_to / to_not eq be be_xxx be_truthy / be_falsey change + from / to / by 配列 + include raise_error be_within + of これからRSpecを始める人はもちろん、何度かRSpecに触れて「うーん、RSpecってわけわからん」となっている人もこの記事で再入門してみると
#!/bin/sh specs=$(find spec -type f -name "*_spec.rb" | grep $@) if [ $? -ne 0 ] then echo "spec not found" exit 1 fi echo $specs rspec $specs $ fspec user spec/controllers/users_controller_spec.rb spec/models/user_spec.rb spec/routing/user_routing_spec.rb spec/views/users/edit.html.haml_spec.rb spec/views1/users/index.html.haml_spec.rb spec/views1/users/new.html.haml_spec.rb spec/views1/users/sho
既存のRailsプロジェクトをRSpec 3.0にアップグレードする際の注意点 ~RSpec 3は怖くないよ!~RailsRSpec はじめに とうとうRSpec 3が正式に公開されたので、早速手持ちのRailsプロジェクトをアップグレードしてみました。 アップグレードしたのはプライベートなプロジェクト4本とパブリックなプロジェクト2本の合計6本です。 この記事では実際にRSpec 3にアップグレードしてみて困った点や気付いた点をまとめてみます。 注意: この記事は2014年6月4日時点の情報です この記事は2014年6月4日時点の情報です。 gemの最新バージョンや周辺ライブラリの対応状況が変化している可能性もあるので、アップグレードする際は適宜ネット上の最新情報を確認するようにしてください。 アップグレードの手順 手順はざっくりいうとこんな感じです。 現行のテストが全てパスすることを確
2014-10-17 TDDを諦めることと、RSpecをやめること Ruby on Rails Ruby RSpec 開発手法 最近Web上でも仕事場でも、RSpecをやめて別のテストフレームワークに変えようと思っている……みたいな話をちょくちょく見聞きするようになった。僕がRuby on Railsで開発を始めた2012年8月当時、すでにRSpecはテストフレームワークのデファクトと言ってよかった。一斉を風靡したRSpecが、なぜ今見直され始めているのか。 きっかけになったのは今年4月の、Rails作者であるDavid Heinemeier Hansson(以下DHH)によるTDD is dead発言だと思う。 5月にはこの発言によるTDDへの風評被害を重く見たKent Beck*1が、レフリーにMartin Fowler*2を迎え、DHHと相対するドリームマッチが開催された。この会談の
I'm fairly new to RoR and recently started learning BDD/Rspec for testing my application. I've been looking for a way to spec an AJAX request, but so far I haven't found much documentation on this at all. Anyone know how to do this? I'm using rails 2.3.8, rspec 1.3.0 and mocha 0.9.8 for my stubs (which I'm also in the process of learning...)
2013-06-23 RSpec Core 2.14 - 基本的なメソッドなどのまとめ 更新 : 2013/08/18 Rails Test RSpec RSpec を習得しようと思い、github の README とかを読むもあまりしっくりこず、色々と記事を 読んでいたら、https://www.relishapp.com/rspec/ が詳細で分かりやすかったので、 https://www.relishapp.com/rspec/rspec-core/docs の一部の意訳を中心にまとめてみた。RSpec Expectations 2.14 - マッチャーのまとめ http://a-few-resources.hatenablog.com/entry/2013/06/24/181923RSpec Mocks 2.14 - Test Double, Method Stub, Me
UPDATED: I've updated the instructions based on feedback in the comments suggesting the use of the --dummy-path=spec/dummy --skip-test-unit options on the rails plugin new command. Recently, we've been doing a lot more with Rails engines. We've developed a few engines that we've released publicly, and even more that we use privately on applications. We've found it's a good way to organize and shar
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く