タグ

RSpecとrspecに関するclavierのブックマーク (134)

  • 使える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入門・その4「どんなブラウザ操作も自由自在!逆引きCapybara大辞典」 - Qiita

    はじめに みなさんこんにちは! この記事は「必要最小限の努力で最大限実戦で使える知識を提供するRSpec入門記事」、略して「使えるRSpec入門」の第4回です。 今回はCapybaraを使ったフィーチャスペックについて説明します。 ただし、今までの記事とは異なり、フィーチャスペックのイロハよりも「Capybaraの使い方」に重点を置きます。 なぜなら、僕個人の経験からいって、フィーチャスペックで困るのは「このブラウザの操作って、どうやってコードで表現するの??」というケースが大半だからです。 それ以外は第1回~第3回の内容をそのまま応用できるので、特に「フィーチャスペックだから困る」ということはないと思います。 今回は説明する主な項目は以下の通りです。 フィーチャスペックの基 ページの移動や画面のクリック、フォームの操作など 画面やフォームの検証 画面の操作や検証の応用テクニック その他

    使えるRSpec入門・その4「どんなブラウザ操作も自由自在!逆引きCapybara大辞典」 - Qiita
  • これを読むとRSpecの裏側がどうやって動いているのか分かるかもしれないぜ - Qiita

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

    これを読むとRSpecの裏側がどうやって動いているのか分かるかもしれないぜ - Qiita
  • PHPerがRailsデビューしてWebAPIを作りRSpecでテスト書いてCap3/CircleCIでデプロイして分かった事を1ヶ月前の自分に教えたいので、まとめてみた - Qiita

    PHPerがRailsデビューしてWebAPIを作りRSpecでテスト書いてCap3/CircleCIでデプロイして分かった事を1ヶ月前の自分に教えたいので、まとめてみたRubyPHPRailsRSpec タイトル長い。すまぬ。PHPerとして約10年近く。Ruby自体は案件によってちょこっとだけ触ったことがある程度。Rails自体を格的にさわるのは今回が初めて。PHPだとCakePHPを中心にZend/Symfonyなどいくつか。そんな僕が今回、Rails4デビューをして、WebAPIを作り、RSpecでテスト駆動開発風味で、GitHubプルリクベースの、CircleCI経由デプロイをするまでの開発の流れをひと通りやってみて、分かったことがいくつかあったので、それをまとめてみた。過去の自分のために。 注意点としては、今回作ったのはWebサービスではなく、スマホゲーム(ネイティブ)のサー

    PHPerがRailsデビューしてWebAPIを作りRSpecでテスト書いてCap3/CircleCIでデプロイして分かった事を1ヶ月前の自分に教えたいので、まとめてみた - Qiita
  • 使えるRSpec入門・その3「ゼロからわかるモック(mock)を使ったテストの書き方」 - Qiita

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

    使えるRSpec入門・その3「ゼロからわかるモック(mock)を使ったテストの書き方」 - Qiita
  • Infratasterでリバースプロキシのテストをする - クックパッド開発者ブログ

    インフラ部の荒井(@ryot_a_rai)です。この記事ではインフラの振る舞いテストのツールであるInfratasterを使ってリバースプロキシの設定のテストをしてみたいと思います。 Infratasterとは Infratasterはインフラの振る舞いをテストするフレームワークで、RSpecのテストヘルパとして機能します。例えば、 特定のヘッダ付きのHTTPリクエストを送信した時にあるレスポンスヘッダが返ってくることをテストする Capybaraを使って実際のWebブラウザ上での挙動をテストする MySQLのSHOW VARIABLESの結果をテストする といったことが可能になります。 細かい概要についてはこちらのスライドやREADMEをご覧ください。 Serverspecとの違い インフラのテストといえばServerspecが有名かと思いますが、InfratasterはServersp

    Infratasterでリバースプロキシのテストをする - クックパッド開発者ブログ
  • 使えるRSpec入門・その2「使用頻度の高いマッチャを使いこなす」 - Qiita

    はじめに みなさんこんにちは! この記事は「必要最小限の努力で最大限実戦で使える知識を提供する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ってわけわからん」となっている人もこの記事で再入門してみると

    使えるRSpec入門・その2「使用頻度の高いマッチャを使いこなす」 - Qiita
  • http://blog.inouetakuya.info/entry/2014/11/03/191059

    http://blog.inouetakuya.info/entry/2014/11/03/191059
  • 使えるRSpec入門・その1「RSpecの基本的な構文や便利な機能を理解する」 - Qiita

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

    使えるRSpec入門・その1「RSpecの基本的な構文や便利な機能を理解する」 - Qiita
  • Turnip のテストレポートを見やすくしてみた - CrowdWorks Engineer Blog

    Turnipのステップ実行毎にスクリーンショット(以下SS)とレンダリングされたhtmlを記録するFormatter、CapturefulFormatterを作りました。 記事では、簡単な使い方の紹介と、どのようにステップを記録しているかについて記していきます。 背景 Ruby on Railsでの受け入れテストと言えばCucumberが著名ですが、ステップ定義にて正規表現を用いる点や、RSpecとの二立てとなっている点などが課題となっていました。 この2点を解決すべく生まれたのがTurnipです。Turnipの詳しい説明はるびま42号のTurnip解説記事が詳しいので割愛します。 しかし、Turnip では、テストレポートもRSpecのものを使うため、特にステップの失敗時のエラーメッセージがかなりわかりにくくなってしまいました。 下記に例を示します。とある画面にボタンが描画されていな

    Turnip のテストレポートを見やすくしてみた - CrowdWorks Engineer Blog
  • TDDを諦めることと、RSpecをやめること - 高柴ラボ

    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と相対するドリームマッチが開催された。この会談の

  • rspec雑感 - Qiita

    入門書として参考になる書籍 Everyday Rails - RSpec による Rails テスト入門 テストは信頼できるものであること テストは簡単に書けること テストは簡単に理解できること 何か学びたいことがあるときは、Webサイトや電子書籍からコピー&ペーストするのではなく、自分でコードをタイピングした方が良い パーフェクトRuby on Rails スペックの高速化 springを使う 書き方のひな形的なのがほしいとき フォーマット describe 'テスト対象' do context '状態' do describe 'テスト対象メソッド' do context '与える入力' do it '期待する出力' end end end end 上記のひな形で書くこと意識づけて書くとitに書く説明も完結になり .rspecに--format documentationを設定して実行

    rspec雑感 - Qiita
  • 【連載 RSpec講座】第1回 「RSpecってなーに?(´・ω・`)」 | heathrow.lab

    はじめまして。川野と申します。 4月にheathrowに入社してからRailsを書き始め、 現在主にテスト周りのコーディングや、それに合わせたコードのリファクタリング等をメイン業務として担当しております。 この講座では、RailsのテストフレームワークであるRSpecについて、弊社での事例を元に紹介していこうと思っております。 私もまだRSpecを書き始めて2ヶ月程度と浅いキャリアですので、そこまでレベルの高い話はできませんが、 初心者に優しい楽しい記事を目指して行きたいと思っております。 間違い等ございましたらお気軽にご指摘ください。 それでは、スタート! ————————————————————- ショボーン君はある大きな悩みを抱えていた・・・。 (´・ω・`) 「うぐぅ・・・困ったなぁ・・・」 ( ´∀`) 「どうしたの?ショボーン君?」 (´・ω・`) 「モナー先生!せっかく

  • RailsテストフレームワークRSpecのインストールと基本的な使い方、基礎文法

    連載目次 前回の「RailsのテンプレートエンジンSlimの書き方とActionViewのヘルパーメソッド、レイアウトの使い方」までで、Railsの基的な使い方をMVCで分解して解説してきました。今回はRailsのテストについて解説します。 ある機能を作るにはいろいろな作り方がありますが、より短く分かりやすいコードに変えたとき、アプリケーションの「振る舞い」まで変わってしまうと問題ありですね。そうならないためにアプリケーションの振る舞いをあらかじめ定義しておきます。そしてコードを変えるたび定義通りに動いているかチェックすれば、バグや不具合を減らせそうです。 Railsには、そのためのツールがあり多くの開発現場でテスティングフレームワークとして使われています。まずはツールを使えるようにするところから紹介しましょう。 標準「MiniTest」とデファクトスタンダード「RSpec」 Rails

    RailsテストフレームワークRSpecのインストールと基本的な使い方、基礎文法
  • 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

  • Web勉強会「RSpec初心者に送るRSpec最強チュートリアル」を放送しました #sg_study - give IT a try

    はじめに 前回のブログでもお伝えしたとおり、「RSpec初心者に送るRSpec最強チュートリアル ~RubyMineもあるよ!~」というWeb勉強会を放送しました。 今回はこの勉強会に関する情報を一通りまとめておきます。 過去最高の参加人数! このWeb勉強会はソニックガーデンが主催するSonicGarden Studyの第8回の放送になります。 これまでの最高人数は「第5回・そのテストは当に必要ですか」の135人だったのですが、今回はこれを超えてなんと192人もの人が参加登録してくれました。 USTREAM上の延べ視聴者数も300人を超えたみたいです。すごい~! SonicGarden Studyに初めて参加する人もたくさんいたようで、この勉強会の認知度が多少上がったんじゃないかなと思います。 参加してくれたみなさん、どうもありがとうございました! 放送の前後はちょっとドタバタ・・・

    Web勉強会「RSpec初心者に送るRSpec最強チュートリアル」を放送しました #sg_study - give IT a try
  • rspecのdescribeとcontextの違いについて。 - ミノタケ日記。

    Rubyist Magazine - 改めて学ぶ RSpec 次に context です。context は describe のエイリアスでしかありませんが使う目的が違います。ひとことで言うなら、 describe はテストする対象をあらわし、 context はテストする時の状況をあらわします。 RSpecによるユニットテストの書き方 - tech.recompile.net describe 'テスト対象' do context '状態' do describe 'テスト対象メソッド' do context '与える入力' do it '期待する出力' end end end end

    rspecのdescribeとcontextの違いについて。 - ミノタケ日記。
  • rspecの--tagオプションを利用して任意のコマンドライン引数をspec側に渡すという邪悪なhack - ( ꒪⌓꒪) ゆるよろ日記

    今まで、rspecコマンドでは任意の引数を渡すことはできなかったので、環境変数経由で引き渡すという方法をとっていた。 ( ;゚皿゚)ノシΣ フィンギィィーーッ!!! MY_OPT1=true rspec spec/my_spec.rb環境変数で渡すのはダルいのでなんとかしたいと思い、`--tag`オプション経由で値を渡すというダーティなhackを書いた。 仕掛けは、helper.rbなどで、以下のように`Rspec.world.filter_manager.incusions`から引数を切り出してクラス変数に保持しておくようなアレをホゲる。 helper.rb class MyOptions class << self OPTION_KEYS = [:my_opt1, :my_opt2] attr_accessor :options def parse(world) @options =

    rspecの--tagオプションを利用して任意のコマンドライン引数をspec側に渡すという邪悪なhack - ( ꒪⌓꒪) ゆるよろ日記
  • Rails + Devise + OmniAuth で Facebook/Twitter の OAuth 認証を RSpec + Capybara でインテグレーションテスト(RequestSpec)

    EasyRamble は、技術ネタや子育て、英語学習、アウトドアなどについて綴るブログです。Ruby on RailsSwift などで、Webサービス/アプリを作っています。

    Rails + Devise + OmniAuth で Facebook/Twitter の OAuth 認証を RSpec + Capybara でインテグレーションテスト(RequestSpec)
  • 今日から使える!RSpec 3で追加された8つの新機能 - Qiita

    はじめに RSpec 3が正式リリースされて2ヶ月ほど経過しました。(正式リリースは2014年6月) ネットの情報を見ていると、これまでは「既存のテストケースをRSpec 3にアップグレードさせる方法」や「RSpec 3で削除されたり、記法が変わったりした点」など、「守りの姿勢」に入った情報が多かったように思います。(僕自身もそういう情報をたくさんアップしていました) しかし、RSpec 3では以前のバージョンでは使えなかった新しい機能も数多く導入されています。 そこで記事では「攻めの姿勢」で「RSpec 3から導入された新機能」をまとめてみました。 なお、ここでフォーカスするのはテストコードの書き方にダイレクトに関わってくるマッチャの新機能です。 2015.01.12:RSpec 3.1に関する情報を追記しました RSpec 3.1に関する情報も追記しました。 もともと紹介していた新機

    今日から使える!RSpec 3で追加された8つの新機能 - Qiita