タグ

RSpecに関するducky19999のブックマーク (33)

  • rspec でファイル読み書きテスト - LIFULL Creators Blog

    ネクストでレコメンドエンジン開発をしてる古川です。 rubyで、ファイルを読み込んで加工して別のファイルに出力というプログラムをよく書きます。 最近、rspec でテストを書くようになったのですが、beforeでテスト入力ファイルを作成し、 after で作成したテスト入力ファイル、テスト出力ファイルを削除、ということをしていました。 とりあえずは、これで問題なかったのですが、同時実行時や、実行時パス、パーミッションなど、 今後いろいろ問題になりそうで、いやだなと思っていたところ、Stack Overflowに、 まさに、それがやりたかったんだよ!という記事を見つけました。 StringIOを使えばよかったのですね。 記事は、読み込みテストだけでしたので、書き込みテストも追加してみました。 テスト対象クラス my_file_io.rb class MyFileIo def run(path

    rspec でファイル読み書きテスト - LIFULL Creators Blog
  • RSpecとCapybaraでJavaScript/Ajaxをテストする

    さて、このRailsアプリケーションがJavaScript/Ajaxを利用していて、「span#touchmeをクリックしたら、p#messageの中に動的に「Hello!」というテキストが現れる」という仕様であった場合は、どうテストすればよいでしょうか。単にa#touchmeをspan#touchmeに変えるだけではだめです。CapybaraはJavaScriptを理解しないので、テストは失敗します。 ここで登場するのがcapybara-webkitというドライバです。WebKitはオープンソースのHTMLレンダリングエンジンで、Google ChromeやSafariがこれを使っています。このドライバを使えばJavaScriptのテストが可能になります。 capybara-webkitをインストールするには、例によってGemfileに gem "capybara-webkit" と書い

  • CapybaraとPoltergeistを使用した場合にDBの内容がビューに反映されない

    僕が翻訳した「Everyday Rails - RSpecによるRailsテスト入門」という電子書籍で、サンプルアプリケーションのソースコードがGitHubに公開されています。 使用しているのはPoltergeistではなくselenium-webdriverなのですが、考え方は同じなのでコード例を載せておきます。 https://github.com/everydayrails/rails-4-1-rspec-3-0/blob/master/spec/rails_helper.rb RSpec.configure do |config| # ... config.before(:suite) do DatabaseCleaner.strategy = :transaction DatabaseCleaner.clean_with :truncation end config.around

    CapybaraとPoltergeistを使用した場合にDBの内容がビューに反映されない
  • VCRを使うとRSpecのWebmockの作成が超絶楽になった!

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

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

    セコン @hotchpotch 時々 rspec 書くと、そもそも文法なんだっけ、expectェ… be_true じゃだめで be_truthyェ… このとき美しく書くには…みたいになってつらい… assert 最高みたいになる 2015-05-27 09:49:54

    RSpec についての議論
  • RSpec::HueFormatter

    DEMO VIDEOS Get to know everything Vimeo can do for your business. Watch now

    RSpec::HueFormatter
  • Rspecのshouldをexpectに置き換えた後の、itの使い道はこれ? #rspec

    Ruby - RSpecのshouldはもう古い!新しい記法expectを使おう! - Qiita [キータ] こちらの記事は以前から何度も読み返しております。o 以前から、これには英語的に違和感がありました。 it { expect(hoge).to be_true } 複数行でもitの意味が分かりません。 it do result = hoge expect(result).to be_true end もちろん、今までのshouldであれば自然です。 subject { hoge } it { should be_true } 前の記事で知りましたが(※)、lib/rspec/core/example_group.rbのとおり、 itはexampleやspecifyで置き換え可能なので、今後はitは使わない方が良 い気がしました。 example { expect(hoge).to

    ducky19999
    ducky19999 2015/04/03
    “is_expected”
  • rspecのfixturesに指定する名前でひっかかった話 - hirakiucの日記

    rails3のrspecを書いて動かしていたときの話。 環境 rails (3.2.13) rspec (2.13.0) activerecord (3.2.13) activesupport (3.2.13) rspecのfixturesに指定する名前によっては、例外がログに出る事があるみたい。 fixtureに :xxx_meta という名前を指定した事が引き金だった。 rspecでfixturesを使ってた とあるrails3なアプリのrspecでfixtureを使ってみたところ、実行する度にログにstack traceが出てくるようになってた。 # spec/models/blog_meta_spec.rb require 'spec_helper' describe BlogMeta do fixtures :blog_meta # ... spec... end spec/fi

    rspecのfixturesに指定する名前でひっかかった話 - hirakiucの日記
  • 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
  • Better Specs { rspec guidelines with ruby }

    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

  • RSpec3初心者向けの資料まとめ直しました![Ruby]

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

    RSpec3初心者向けの資料まとめ直しました![Ruby]
  • 使えるRSpec入門・その1~その4を書き終えました + 執筆裏話とか - give IT a try

    はじめに 昨年末からQiitaに執筆していた初心者向けのRSpec入門記事、「使えるRSpec入門」の全4回をすべて書き終えました。 各記事のリンクは以下の通りです。 使えるRSpec入門・その1「RSpecの基的な構文や便利な機能を理解する」 使えるRSpec入門・その2「使用頻度の高いマッチャを使いこなす」 使えるRSpec入門・その3「ゼロからわかるモック(mock)を使ったテストの書き方」 使えるRSpec入門・その4「どんなブラウザ操作も自由自在!逆引きCapybara大辞典」 「使えるRSpec入門」って何? 「使えるRSpec入門」は「必要最小限の努力で最大限実戦で使える知識を提供するRSpec入門記事」をテーマにしたシリーズ記事で、略して「使えるRSpec入門」と名付けました。 僕がRSpecでRubyRailsのテストを書いてきた経験から、「これはよく使うから重要」「

    使えるRSpec入門・その1~その4を書き終えました + 執筆裏話とか - give IT a try
  • これを読むとRSpecの裏側がどうやって動いているのか分かるかもしれないぜ - Qiita

    これはTokyuRuby会議08にて発表した資料を元にQiita向けに再編集したものです。 元々Advent Calendarと共用にしようと思って、どう考えても5分で話せない資料でLTしたのでした。 最初に RubyのテスティングフレームワークとしてはトップクラスにメジャーなRSpecですが、内側の実装が黒魔術感に溢れていて非常に読み辛い。 そしてカスタマイズするにも学習コストが高いという話を聞きます。 最近「RSpec止めますか、人間(Rubyist)止めますか」みたいな風潮が出ていてバリバリのRSpec派の私としては見過ごせない感じになってきたので、いっちょRSpecがどんな感じで動いてるのかを大まかに解説していくことで、世の中に対して再びRSpecを啓蒙していこうと思うわけです。 この話はrspec-core-3.1.7辺りをベースにしています。 起動 rspecのコマンドエンドポ

    これを読むとRSpecの裏側がどうやって動いているのか分かるかもしれないぜ - Qiita
  • 使えるRSpec入門・その1「RSpecの基本的な構文や便利な機能を理解する」 - Qiita

    はじめに RSpecは難しい、よくわからない、といったコメントをときどき見かけます。 確かにちょっと独特な構文を持っていますし、機能も結構多いので「難しそう」と感じてしまう気持ちもわかります。 (構文については僕も最初見たときに「うげっ、なんか気持ちわるっ」と思った記憶がありますw) しかし、RSpecに限らずどんなフレームワークでも同じですが、慣れてしまえばスラスラ書けますし、実際僕自身は「RSpecって便利だな-」と思いながらテストコードを書いています。 そこでこの記事では、僕が考える「最低限ここだけを押さえていれば大丈夫!!」なRSpecの構文や、僕が普段よく使う便利な機能をまとめてみます。 具体的には以下のような構文や機能です。 describe / it / expect の役割 ネストした describe context の使い方 before の使い方 let / let!

    使えるRSpec入門・その1「RSpecの基本的な構文や便利な機能を理解する」 - Qiita
  • RSpecでRequest Describer - Qiita

    WebアプリケーションのHTTPレベルでの振る舞いに対してテストを記述するとき、皆さんはどのような考えを持ってテストコードを記述しているでしょうか。この投稿では、この手のrequest-specと呼ばれるテストについて考えながら、テストを書くときの幾つかの方針と、RSpec::RequestDescriberを利用してテストコードを簡略化する方法を紹介します。 request-specとは request-specという、HTTPにおけるリクエストとレスポンスの組み合わせを、言わばブラックボックスとして扱うテスト形式の呼び名があります。リクエストを入力、レスポンスを出力として扱い、ある入力に対して期待される出力が返されるかどうかをテストします。rspec-railsの中では、request-specに対して以下の説明が与えられています。 Use request specs to speci

    RSpecでRequest Describer - Qiita
  • そのガチャの確率、本当に合ってます?〜RSpecで統計的に確認する話〜 - Akatsuki Hackers Lab | 株式会社アカツキ(Akatsuki Inc.)

    背景 ソーシャルゲームでよく見かける「ガチャ」ですが、この記事ではその重み付き確率の保証方法を紹介します。 ガチャは売上・ユーザー体験・ゲームバランスに直結するので、意図通りの動作をするか慎重に確認する必要があります。 またアカツキではTDD (Test Driven Development)を採用しているので、 実装したプログラムが想定している確率に従っているかを確認するためのスペックが必要となります。 理論 使用する数理モデルは「離散確率密度変数」です。 例えばガチャで入手できるキャラクターのIDが であり、 その入手確率が (実装の便宜上自然数としますが、非負の実数としても一般性を失いません)によって重み付けされているとします。 このとき、ID のキャラクタが入手できる確率は、 となります。 さて、10000回の試行(ガチャを引くこと)をしたとき、入手できる確率が50%のキャラクタを

    そのガチャの確率、本当に合ってます?〜RSpecで統計的に確認する話〜 - Akatsuki Hackers Lab | 株式会社アカツキ(Akatsuki Inc.)
  • RSpecによるユニットテストの書き方 – recompile.net

    最近、新人のテストコードを見る機会があり、ユニットテストの書き方について考える機会があった。ユニットテストはテンプレートみたいなものがあるので、それさえ押さえれば、誰でも簡単に書くことができる。 ここでは、その方法について紹介したい。サンプルはRSpecで書くが、その他のユニットテストフレームワークでも、応用ができるとおもう。 はじめに ごく単純化すると、テスト対象は状態を持ち、入力を与えると何らかの出力を行なうものである。入力が変われば出力は変化するし、状態が変化すると入力が同じでも出力が変わる(かもしれない)。 ユニットテストは、テスト対象の状態を操作し、与えた入力によって意図通りの出力を得られるかを確認する作業のことをいう。なので、ユニットテストを書くときには、オブジェクトの状態ごとにメソッド単位で入力と出力を確認するようにする。 RSpecの疑似コードで書くと、次のようなテンプレー

    RSpecによるユニットテストの書き方 – recompile.net
  • RSpecの基本 - ダメ人間を支える技術

    2014-03-07 RSpecの基 インターン こんばんは。 学習は、15日目です。前回の続き、自動テストについてです。 テスト駆動開発(TDD)と振舞駆動開発(BDD) - ダメ人間が生きている 今日は、RSpecによるテストを書いていきます。 testinitで書いたテストをRSpecで書いてみる 前回testinitで作成した、引数が"shigotop"か否かを判定するメソッドis_shigotopに対するテストを、今回はRSpecで書いてみます。 require "./spec_helper.rb" require "./nameinspecter.rb" describe NameInspecter do before do obj = NameInspecter.new end it "shigotoはfalse" do @obj.is_shigotop('shigo

  • 【vim】vimprocを使ってvim-quickrunからRspecを非同期実行! - 訳も知らないで

    テスト、書いてますか? 私は… すこしづつ慣れてきているところでしょうか。 ruby(Rails)で開発をする際、ユニットテストにRSpecを利用している方多いですよね。 Vimを使っている方ならおなじみの「quickrun」を私も利用して vim上からテストを実行しているのですが、 普通にquickrunからテスト実行すると、実行中はvimの操作ができなくなっちゃうんですよね… で、検索してみると 「vimproc」なるものを使用すると別プロセスでquickrunを実行できるらしい。 というわけで環境整えてみました。 vim-quickrunの導入 Vim上から編集中のプログラムを実行してくれるスグレモノです。 ↓ここからダウンロード↓ https://github.com/thinca/vim-quickrun/tags 解凍したら、~/.vim/pluginの中に突っ込むだけでOK

    【vim】vimprocを使ってvim-quickrunからRspecを非同期実行! - 訳も知らないで
  • RSpec の入門とその一歩先へ - t-wada の日記(旧)

    和田 卓人(@t_wada) 作『RSpec の入門とその一歩先へ』はクリエイティブ・コモンズ 表示 - 継承 4.0 国際 ライセンスで提供されています。 東京 Ruby 会議 03 の RSpec ワークショップの資料です。このワークショップでは参加者の方に「写経」(コードを書き写すこと)をして貰い、TDD/BDD と RSpec を同時に学べるように都度説明を入れるかたちで行いました。 第2イテレーションも書きました。続きに興味ある方はご覧下さい (更新) 第3イテレーションも書きました。続きに興味ある方はご覧下さい 1st iteration favotter の みたいな NG ワードのフィルタリング機能を RSpec で作りましょう。まずは NG ワードの検出機能を作成します。 このイテレーションでは最初ベタな形のテストコードと実装を書き、だんだんとそのコードを洗練させてゆきま