タグ

rspecに関するchanpon0のブックマーク (14)

  • should を捨て expect を使うようになった、たった一つの理由 - MUGENUP技術ブログ

    皆さんこんにちは。スーパーのビニール袋は濡れタオルを触ってから開ける方、MUGENUP の osada です。 今回はexpect について調査したことを書きたいと思います。 ターゲットは、rspecが上手く書けなくて、気が付くと3時間もテストを書いている、というようなrspec初心者です(実話)。 中間管理職 expect さん では、題のexpectです。まずは問1から。5秒で答えてください。 describe Person do it "should be a instance" do expect{Person.new}.to be_a(Person) end it "should be a instance" do expect(Person.new).to be_a(Person) end end 問1 両方テストが通る 上のテストが通らない 下のテストが通らない 両方通らな

  • 【テスト編】ActionMailerでメールを送信する - 珈琲駆動開発

    せっかくなのでTDDで。 方針 Emailのテストに関しては以下の記事が非常に丁寧にまとめてくださっていて感謝感激です。 ActionMailer のメール送信テストを RSpec で行う | EasyRamble Emailのテストを書き始める前にRails Guidesのテストの項目に目を通しておくことを激オシしておきます。僕はちょっと進んでから先に読んでおいた方がよかったな、、、と若干後悔しましたので。 A Guide to Testing Rails Applications — Ruby on Rails Guides Emailのテストの方針は以下です。 The goals of testing your mailer classes are to ensure that: ・emails are being processed (created and sent) ・the

    【テスト編】ActionMailerでメールを送信する - 珈琲駆動開発
  • How to test CSV import with RSpec?

  • What are mock and stub used in unit testing? • No Programming, No Life

    This article is a simple explanation of mock and stub used in unit testing. What is stub? A stub is a small program routine that substitutes for a longer program. You should use a stub in order to pass to the code under test. What is mock? Mock is a method/object that simulates the behavior of a real method/object. A mock is an object that we can set expectations on, and which will verify that the

  • Rspecのreceiveで確認対象のメソッドを実行させる [俺の備忘録]

    Google+ボタン はてなブックマークボタン 更新日時: 2013年08月06日(火) 作成日時: 2013年08月06日(火) 前の記事 / 次の記事 Rails4のsacaffoldでコントローラーに生成される before_action :set_xxx をテストしてみようとしたら嵌まったのでメモ。 Rspecの receive はあるメソッドが実行されるかどうかを調べるモック。 でも、あるメソッドが実行されるかどうかを調べるモックなので、 実行されることが確定したらモックは成功したことを返してその内容は実行されないで終わる。 けど、実行させたい話。 例えばコントローラーが class ArticlesController < ApplicationController before_action :set_article、only: [:show, :edit, :update,

  • RSpecでshared_examples_forを使って共通動作をテストする | 自転車で通勤しましょ♪ブログ

    先日からguard + spork + rspecを使った自動テストを行うようになってノリノリでテストをしています。いちいち自分でテストを走らせないでいいので便利ですね!sporkのおかげでテストのロードも速くて快適です。 さて、現在仕事でもゴリゴリとテストを書いているのですが、同じような処理を毎回書くことがあります。例えば、ユーザーの権限が管理者・会員・ゲストなどがある場合、それぞれの権限での動作を検証しなければなりません。でも権限毎に同じ振る舞いのテストを書いていると冗長ですよねぇ…。 会社で@kazuhisa1976と@ore_publicと一緒にThe RSpec Book読書会をやっているのだけれど、そこで学んだ検証方法で、共通処理をまとめることができることを知りました。それが、shared_examples_forとit_behaves_likeです。 使い方ですが、まずはユー

  • 使えるRSpec入門・その3「ゼロからわかるモック(mock)を使ったテストの書き方」 - Qiita

    はじめに みなさんこんにちは! この記事は「必要最小限の努力で最大限実戦で使える知識を提供するRSpec入門記事」、略して「使えるRSpec入門」の第3回です。 今回はRSpecのモックを使ったテストについて説明します。 これまでモックを全く使ったことがない人でもわかるように丁寧に説明していくつもりです。 また、これまでの回と同様、個人的に使用頻度が低いと思っている内容についてはバッサリ説明を省きます。 ただし、第1回や第2回に比べるとテストコードが少し複雑になって、仕組みや動きを想像するのがちょっと難しいかもしれません。 ぱっと頭に入ってこない場合はじっくり文を読んだり、実際に自分で写経しながらコードを動かしたりするなどして、少し時間をかけながら理解するようにしてください。 今回は以下のような内容を説明します。 モックの基的な使い方 モックを使った検証 モックでわざとエラーを発生させ

    使えるRSpec入門・その3「ゼロからわかるモック(mock)を使ったテストの書き方」 - Qiita
  • RailsのRSpecテストを速くする方法まとめ - Rails Webook

    Photo by Flickr: chief_huddleston's Photostream Railsの規模が大きくなると自動テストの実行時間もだんだんと長くなっていきます。素早く開発していくにはテストの実行時間を短くすることが大切です。 RSpecのテストを速くする方法をまとめましたので参考にしてください。 動作確認 Rails 4.1 rspec-rails 3.1.0 test-queue 0.2.9 目次 1. RSpecのパフォーマンス測定 2. test-queueで並列でテストを実行する 3. rspec-guardを使って更新したファイルを自動的にテストする 4. Springを使ってテストのロード時間を短くする 5. ログレベルを変える 6. GCを実行を抑える 7. RSpecファイルのリファクタリングをする 7.1. itを少なくする 7.2. createよりも

    RailsのRSpecテストを速くする方法まとめ - Rails Webook
  • 特定のSpecでだけトランザクションのロールバックを無効にする - Qiita

    テストを書いていると、マルチスレッドでデータベースを参照したくなることがあります。 たとえば Capybaraなどによるヘッドレステストを行いたい データベースのロック確認 複数スレッドでの同時アクセス時の動作 などです。 課題 しかしながら、通常、テスト中のデータベース操作はトランザクション内で行われ、コミットされません。 このため、メインスレッドで行ったデータベース操作は、他のスレッドでは参照できず、テストに失敗します。 こんなときは、 # config.use_transactional_fixtures = true config.use_transactional_fixtures = false としてた上でconfig.after(:each)(あるいはDatabaseCleanerで)データベースを空にするのが定番のやりかたです。 フィクスチャ制御にトランザクションを使わな

    特定のSpecでだけトランザクションのロールバックを無効にする - Qiita
    chanpon0
    chanpon0 2016/12/16
    transaction poltergeist
  • FactoryGirlでhas_many(またはbelongs_to)な入れ子構造データを定義する - tumblr

    あるマスターデータをDBに入れたいが、テスト時にもそのマスターデータは使いたいので、db/seed.rbを使わずFactoryGirlでデータを突っ込んでいる。その方法が果たして現時点でのベストプラクティスなのかはわからないが。 (その方法自体はこちらの記事参照:http://naoty.hatenablog.com/entry/20111030/1319973849) 何にしてもマスターデータを入れる場合、そのデータは複数のテーブルにまたがっててhas_manyな関係だったりするかもしれない。 そういうデータをFactoryGirlで扱う時のメモ。 こういう構造のマスターデータを入れたいとする。 class Author < ActiveRecord::Base has_many :books end class Book < ActiveRecord::Base belongs_to

    FactoryGirlでhas_many(またはbelongs_to)な入れ子構造データを定義する - tumblr
    chanpon0
    chanpon0 2016/11/01
    簡単なアソシエーション 。わかりやすい。
  • RSpec/Capybara -- はじめの一歩

    連載第2回目は、プログラマーの古き良き伝統「Hello World」です。RailsアプリケーションのTopページに「Hello World!」というコンテンツを持つ p 要素が存在するかどうかをRSpecとCapybaraでテストします。 連載のメインの読者としてはRubyRailsを学習中の方を想定しています。したがって、RubyRailsはインストール済みであるという前提で話を始めます。Ruby のバージョンは2.0.0で、Railsのバージョンは4.0.0です。オブジェクト、クラス、モジュール、メソッド、インスタンス変数といったRubyの基的な概念、モデル、ビュー、コントローラ、ルーティングといったRailsの基的な概念については説明しません。なお、データベース管理システムとしてはMySQLを使用します。おそらく、SQlite3やPostgreSQLOracleでもうま

    RSpec/Capybara -- はじめの一歩
    chanpon0
    chanpon0 2016/10/25
    文法が古い。。基本の理解に。
  • RSpec/Capybara入門 - Ruby on Rails with OIAX

    Ruby on Railsプログラマーのための「RSpec/Capybara入門」を連載します。Railsを学習中の初心者がテスト駆動開発(TDD)あるいはビヘイビア駆動開発(BDD)を実践するための基礎的な知識や考え方を説明していきます。 メインテーマはRSpecとCapybaraですが、factory_girl、Database Cleaner、Zeusなどの関連するGemパッケージも途中で紹介していく予定です。また、CSSセレクタやXPathについても簡単に解説することになるでしょう。 いちおうRubyRailsの基礎知識を話の前提としますが、初心者を念頭に置いて丁寧な説明を心がけます。 できるかぎり具体的にコーディングと操作手順を示すつもりです。実際に手を動かしながら読み進めると、より理解が深まるでしょう。 記事一覧 イントロダクション (2013/08/14) RSpec/Ca

    RSpec/Capybara入門 - Ruby on Rails with OIAX
    chanpon0
    chanpon0 2016/10/25
    文法が古い。基本の理解に。
  • RSpec3初心者向けの資料まとめ直しました![Ruby]

    TDDでRSpecを書くにあたって、どれだけ効率的に効果的なテストが書けるかは、品質を高めていく上ですごく大切なことだと思います。 今回、RSpec3用のドキュメントやWebサイトをいろいろ読みなおして、最近までに特に良かった記事などを中心にまとめ直しました。 RSpec3に入門しようとしている初心者さんや、普段使っているけどもう一度RSpec3の知識を整理したい人にオススメのマトメです! 🗽 TDD/BDDとは?TDD/BDDにおける「振る舞い」の意味するところとは何なのか RSpecに限定された記事ではないですが、BDDの根的な概念の「振る舞い」についてまとめられた記事です。 これを知っておくことで、ここから先の話がかなりスムーズに理解できるようになると思います。 🎂 まずテスト書いてからコード書くシンプルなチュートリアルはじめてのRSpec - まずテスト書いてからコード書くシ

    RSpec3初心者向けの資料まとめ直しました![Ruby]
  • 分散テスト実行システムRRRSpecをリリースしました - クックパッド開発者ブログ

    技術部アルバイトの鈴木(@draftcode)です。 クックパッドが内部向けに開発・運用を行ってきた、分散テスト実行システムRRRSpecをオープンソースとして公開しました。RRRSpecは時間のかかる自動テストを分散処理することで、全体のテスト時間の短縮を狙うアプリケーションです。現在クックパッドでは17000を超えるテスト項目があり、マシン一台でテストを実行すると完了まで数時間かかります。このテストを60並列程度の分散処理で行うことで、平均8分から9分程度で完了できるようになりました。また、Amazon EC2のスポットインスタンスを利用することにより、大幅なコスト削減も同時に達成しました。 https://github.com/cookpad/rrrspec 分散テスト実行とは アプリケーションが大きくなるにつれて、自動テストの数も大きくなっていきます。クックパッドでは、非常に多くの

    分散テスト実行システムRRRSpecをリリースしました - クックパッド開発者ブログ
    chanpon0
    chanpon0 2014/03/24
    すげーことやるな。。クックパッドってこんなテスト項目膨大なほど複雑なシステムなん??
  • 1