Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?
はじめに 3月頃,『【Rails】RSpecでWeb APIのテストでハマったところ①』という初心者丸出しな記事を書きました. あれから9ヶ月ほど,お仕事としてRailsに触れたりしたため知見・スキルも向上してきたと思います. そして今,前述の記事を見直したところ恥ずかしくて顔を覆いたくなる感じになったので改めてWeb APIのテストについて書いていきます. APIのテスト? そもそもWeb APIのテストはどこに書くの?ってところからですが… Controller SpecではなくRequest Specに書いていきます. Use RSpec Request Specs Since we’ve established that we’ll be using Rack::Test to drive the tests, RSpec request specs make the most s
If you’re using RSpec and FactoryGirl to automate testing for your Rails app, you probably know that when creating a factory for a model that has association you can simply specify the factory of the associated model. For example, suppose your Contact model has associations with Phone and Store models:
井原(@ihara2525)です。 RSpecでアップロードされたファイルをつくってテストしたい、という場合、以下のようなファイルをshared contextとして作成し、必要な箇所でincludeして使うようにしています。 spec/support/shared_contexts/uploaded_file.rb include ActionDispatch::TestProcess RSpec.shared_context 'uploaded file' do let(:uploaded_file) do uploaded_file = fixture_file_upload('images/ハレアカラ.jpg', 'image/jpeg') allow(uploaded_file).to receive(:tempfile).and_return(uploaded_file) up
はじめに 先日、「RSpec で example の外で定義したローカル変数を使うのはアリか?」というブログ記事を拝見しました。 ブログの作者である「きいあむ」さんは、「exampleの外で定義したローカル変数を使うのもアリなのでは?」というスタンスで記事を書かれています。 ですが、僕は「うーん、これはちょっと・・・」という感が否めません。 そこでこのエントリでは上記ブログ記事の内容に対する、僕の見解と考えられる解決策を書いていきます。 RSpecでテストを書くことがある人は参考にしてみてください。 上記ブログの簡単なまとめ さくっと要点を把握したい、という方のために、きいあむさんの意見を簡単にまとめておきます。 RSpecでは値を共通化するために、インスタンス変数やletを使います。 たとえば、何も考えずに愚直テストを書くとこんな感じになります。 describe User do it
こんにちは。大阪開発部の岡田(@y_okady)です。大阪のランチは今日も安くて旨いですね。 サイボウズと言えばSeleniumを使ったE2Eテストのイメージが定着しつつありますが、そのE2Eテストをさらに強固なものにするために新しい仕組み作りにチャレンジしました。 作り始めて3日しか経っていないプロトタイプの段階ですが、構成はだいたい固まってそれなりに動くものができたのでご紹介します。 きっかけ 2週間ほど前に読んだ「エッセンシャルスクラム」に、こんなことが書いてありました。 テストはスプリント期間よりも長くかかる場合がある。 そうなるのは、開発チームが巨大な手動テストという負債を背負っているからだ。 サイボウズではE2Eテストの自動化が進んでいると言っても、自動化できているのは試験全体のほんの一部です。ほとんどのテストは手動で実施しており、プログラマが1ヶ月かけて開発したものをQAが1
Release Version 1.3.1 · jnicklas/turnip テスト用に gemfiles/ 以下に RSpec 毎のファイルが増えてくると不安になる… 主な内容 掲題のとおり、RSpec 3.3.0 対応となります。 RSpec 3.3 has been released! RSpec 3.3.0 の変更で Turnip に影響があったのは、テスト実行の際に行数が指定された時の挙動です。 どういうこと つまり $ rspec /path/to/foo.feature:12 みたいなやつです。RSpec 3.3.0 からは ↑ のような行数だけではなく $ rspec /path/to/foo.feature[1:4] このように書くことで 「1番目の describe の中にある、4番目の it だけ(もしくは4番目の describe の中にあるやつ全部)を実行しなさ
Myron MarstonJun 12, 2015RSpec 3.3 has just been released! Given our commitment to semantic versioning, this should be a trivial upgrade for anyone already using RSpec 3.0, 3.1 or 3.2, but if we did introduce any regressions, please let us know, and we’ll get a patch release out with a fix ASAP. RSpec continues to be a community-driven project with contributors from all over the world. This releas
このエントリは刻々と変化する RSpec の作法や暗黙のルールに疲れた人むけです。 テストフレームワークとして人気のある RSpec ですが、しばらく使っていると非本質的な話に振り舞わされて疲れることがあります。インターネット上の情報も早いペースで古くなりがちです。こういった事情により RSpec から標準のテストフレームワークに出戻る、あるいは移行するデベロッパが世界中で増えていると聞きます。 移行するといっても、いざコードを書きはじめてから minitest のシンプルすぎる構文に戸惑う人もいるでしょう。そういった人たちのために、なるべく慣れ親しんだテスト構成を標準ライブラリで組む方法を紹介します。 Example Group が恋しくなる RSpec を使っていると example group を使ってテスト対象を細かく絞ったり、対象の状態に応じたテストを書くことがよくあります。そう
(2022.5.4追記) FactoryGirlはFactoryBotという名前に変更されています(参考)。この記事は昔の名前である「FactoryGirl」を使っています。 はじめに 今年のゴールデンウイークはMinitestとRSpec、FixturesとFactoryGirlについていろいろ研究(?)していました。 具体的にはこんなことをやっていました。 Rails Tutorial 第3版を写経した(第3版ではMinitestとFixturesを使っている) Rails TutorialのテストコードをRSpecとFactoryGirlで書き直した Everyday RailsのテストコードをRSpec + FactoryGirlからMinitest + Fixturesに書き直した The Minitest Cookbookを読んだ 今回のエントリではMinitestとRSpec
この記事はeXcale Developer's Blogから移転されたものです。 eXcale 開発チームの冨樫です。 Ruby のテストフレームワークで人気の RSpec について、ハマりそうな点や知っておくと便利な機能をご紹介致します。 今回は「ブロック付きメソッドの stub 化」です。ブロック付きメソッドは each や map だけでなく、ファイルやネットワークを介した操作をするとき等、様々な場面で使用されるので、この stub 化については役立てる機会が多いかと思います。 eXcaleでは期間限定でサインアップキャンペーン実施中です。 キャンペーン内容についてはこちらを参照してください。 今回ご紹介する内容の題目です ブロック付きメソッドを stub 化する ブロック処理内で stub 化したオブジェクトを使用する ブロック処理内で任意のメソッドを実行する ブロック付きメソ
I’ve been using RSpec in earnest for the past 6 months now, so I thought it’s time to write a blurrrgh poast comparing RSpec with Minitest. I’ve used Minitest for years, and RSpec only for 6 months, so please keep that in mind when reading! PLEASE REMEMBER, I don’t care what test framework you use, as long as you are testing your code. This is a post just about my experience with these two framewo
Myron MarstonFeb 3, 2015RSpec 3.2 has just been released! Given our commitment to semantic versioning, this should be a trivial upgrade for anyone already using RSpec 3.0 or 3.1, but if we did introduce any regressions, please let us know, and we’ll get a patch release out with a fix ASAP. RSpec continues to be a community-driven project with contributors from all over the world. This release incl
違いというか使い分け方がわからない (追記アリ) letは使われたタイミングで処理される。let!は毎回処理をされる。 てっきり、letは一回初期化されたら使いまわされるんだと思っていたけど、呼び出されたときは毎回初期化するようだ。 describe 'let_test' do let(:sample_1){ puts "****let****"; 'sample1'} let!(:sample_2){ puts "****let!****"; 'sample2'} before do puts "before---" end after do puts "after----" end it { sample_1.should eq 'sample1'} it { sample_1.should eq 'sample1'} it { sample_2.should eq 'sample2'
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く