タグ

rspecに関するigrepのブックマーク (35)

  • 「アプリケーションが壊れているのに検知できないテストコード」を書かないようにするための、べからず集 - Qiita

    はじめに テストコードを書くことは重要です。 テストコードがないアプリケーションよりもテストコードがあるアプリケーションの方が望ましいことは間違いありません。 ですが、テストコードも書き方を間違えると、アプリケーションが壊れているのに正しく検知できないテストを書いてしまう可能性があります。 この記事ではそんな「アプリケーションが壊れているのに正しく検知できないテスト」のコード例を「〜するべからず(〜してはいけない)」の形式で紹介し、その修正方法を説明していきます。 サンプルコードはRSpecで書いてます(でも他の言語でも考え方は同じはず) サンプルコードはRailsアプリケーションをRSpecでテストする場合を想定したものになっていますが、基的な考え方自体は他の言語やテスティングフレームワークでも適用可能なはずです。 RSpecのイロハについて先に学んでおきたいかたは「使えるRSpec入

    「アプリケーションが壊れているのに検知できないテストコード」を書かないようにするための、べからず集 - Qiita
  • RSpecを実際に書いて体験してみる - Qiita

    この記事の目的 RSpecの取っ掛かりとして、簡単なRSpecを書いて実際に実行してみます。流れの中で説明も多少入っていますが、事細かく何を意味しているかなどの説明はあまりしません。あくまでまずRSpecを実行してみる、体験してみるところに重点をおきます。 今回使用するメソッドの説明 文字列数字を足し算するメソッドを作ってみましょう。メソッドはint Add(string numbers)。 メソッドは文字列の数字を引数(例:"1")に取る、カンマ区切りで複数の文字列の数字が取れる(例:"1,2,3")。 空の場合は0を返す RSpecを準備する Gemfileにrspecを追加。bundle installを実行。

    RSpecを実際に書いて体験してみる - Qiita
    igrep
    igrep 2017/12/22
  • 普段のテストを華やかに - Qiita

  • 【翻訳】RSpecのリードメンテナだけど何か質問ある? - Qiita

    はじめに 先日、Redditでこんな記事が載っていました。 AMA: The authors of "Effective Testing with RSpec 3", Myron Marston and Ian Dees : ruby この記事は書籍「Effective Testing with RSpec 3」の筆者であるMyron Marston氏とIan Dees氏が、書籍に関する質問に何でも答えます、という企画です。 この2人のうち、Myron Marston氏はRSpecの開発者(リードメンテナ)です。 Q&Aを読んでいると、RSpecの開発者ならではの意見だなと思うところがたくさんあり、なかなか興味深い議論になっていました。 というわけで、この記事では先ほどのQ&Aから「これは日Rubyプログラマにも役立ちそう」と思ったやりとりをピックアップして翻訳してみます。 ピックアッ

    【翻訳】RSpecのリードメンテナだけど何か質問ある? - Qiita
    igrep
    igrep 2017/10/25
    RSpecでかくなっていやになったユーザーの一人だけどやっぱりメンテナー当人も感じているっぽいね…
  • RSpecでDynamoDBなどの外部サービス機能のユニットテストを実現する - Qiita

    この投稿は Sansan Advent Calendar 2015 の 13 日目の記事です。 みなさんテスト書いてますか? この時代テスト書いていない人なんて、いないですよね。 いるわけないと思います。 ただ、質問を変えて、 外部サービスに依存するコードのテスト書いてますか? となると、結構テスト書いてない人多いんじゃないかなと思います。 あるいは書いていても、中途半端なものになっちゃうんじゃないかなと思うんです。 そこに課題感があったので、この記事書くことにしました。 背景 弊社ではAWSサービス群を結構使ってまして、最近はコアな機能の部分に DynamoDB SQS などをガッツリと採用しています。 正直今までも上記サービスは使っていたはいたんですが一部だったということもあり、テストに力を入れてませんでした。 たとえば、DynamoDB周りのテストとかは expect_any_ins

    RSpecでDynamoDBなどの外部サービス機能のユニットテストを実現する - Qiita
  • GitHub - r7kamura/rspec-request_describer: RSpec plugin to write self-documenting request-specs.

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - r7kamura/rspec-request_describer: RSpec plugin to write self-documenting request-specs.
    igrep
    igrep 2015/07/11
    僕も知らなかった。こりゃいい。 #yokohamarb
  • RSpec 3.0から3.3まで一気に上げたので独断と偏見で選んだ注目すべき新機能を紹介する - Qiita

    実際にはほとんど3.3の話ですが、まぁ3.3それだけよさそうなんで、みなさん使ってみてください。 まずはRSpecのブログにも書いてあったものから。 RSpec 3.1 has been released! RSpec 3.2 has been released! RSpec 3.3 has been released! (3.2での変更) Core: Performance Improvements オブジェクトを割り当てる回数を減らして速くしたそうです。RSpecが速すぎて困る人は誰もいません。上げましょう。 (3.2での変更) Mocks: Mismatched Args Are Now Diffed expect(x).to eq(y) して失敗した時と同じように、expect(x).to receive(:method_name).with(arg)と書いて失敗した時も予測した結

    RSpec 3.0から3.3まで一気に上げたので独断と偏見で選んだ注目すべき新機能を紹介する - Qiita
    igrep
    igrep 2015/06/23
    書きました!社内LT大会の資料にも使えた!
  • RSpec 3.3 has been released!

    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 3.3 has been released!
    igrep
    igrep 2015/06/15
  • VCRを使うとRSpecのWebmockの作成が超絶楽になった!

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

    VCRを使うとRSpecのWebmockの作成が超絶楽になった!
  • Request Spec で HTTP HEADER を勝手につける gem を作った - けんちゃんくんさんのWeb日記

    kenchan/rspec-default_https_header です。 APIサーバの Request Spec を書こうと思ったときに、毎回 OAuth のトークン設定したり、 CONTENT_TYPE: 'application/json' とか付けるのは人間のやることではないので、もうちょっと簡単にできるようにしました。 最初は r7kamura/rspec-request_describer がいいかなと思ったんですが、ちょっと枠組みがエクストリームな感じなので、最初から導入したりえいやっと書きかえるならよかったんですが、もうちょっとゆるめのやつが欲しかったのです。 Q. テストがないようですが? A. すみません…テスト書いたらリリースしてWeb日記書こうと思ったんですが、うっかり社内のプロダクトに入れてしまったので書いちゃいました。 わりと便利だと思うのでよかったらお使い

    igrep
    igrep 2015/01/23
  • require "spec_helper" を省略する - Qiita

    のように書いておけば、全 *_spec.rb ファイルの先頭に require "spec_helper" を書く手間を省ける Register as a new user and use Qiita more conveniently You get articles that match your needsYou can efficiently read back useful informationYou can use dark themeWhat you can do with signing up

    require "spec_helper" を省略する - Qiita
    igrep
    igrep 2015/01/12
    なるほど。
  • RSpec 3 時代の設定ファイル rails_helper.rb について - おもしろwebサービス開発日記

    rspec-rails、3.0.1 がリリースされていますね。インストールして rails g rspec:install とすると、spec/rails_helper.rb という見慣れないファイルが作成されます。これは一体何でしょうか。 rspec-rails のREADMEを読むと、これからは spec/rails_helper.rb に Rails 特有の設定を書き、spec/spec_helper.rbには RSpec の全体的な設定を書く、というようにお作法が変わるそうです。これによって、Railsを必要としないテストを書きやすくなるんだとか。 というわけで、これまで require 'spec_helper' としていた箇所の大部分は require 'rails_helper' に置換してあげる必要がありそうですね。パーフェクト Ruby on Rails のテストの章は

    RSpec 3 時代の設定ファイル rails_helper.rb について - おもしろwebサービス開発日記
    igrep
    igrep 2015/01/12
    "spec/rails_helper.rb に Rails 特有の設定を書き、spec/spec_helper.rbには RSpec の全体的な設定を書く、というようにお作法が変わるそうです。これによって、Railsを必要としないテストを書きやすくなるんだとか。"
  • flntというgemをめっちゃドッグフーディングして進歩させた話 - Qiita

    こんな感じのタグがついて、Fluentdに送られます。このgem、最近著しく進歩したんですが、その過程を紹介したりしようと思います。 バージョン 0.1.1 まで このバージョンまではずっと前に作っていて、上記のスクラッチのコードを思いついて、すぐに実装してみた、と言う感じです。 上述したような特徴的なAPIは、BasicObjectとmethod_missingで頑張る、安全かどうかはテストで頑張る、と言う方針でやっています。 module Flnt class Logger < BasicObject # ... def method_missing(name, *args) return super if name.to_s =~ /(!|\?)$/ @tag = [@tag, name.to_s].join('.') unless args.empty? emit! args.fi

    flntというgemをめっちゃドッグフーディングして進歩させた話 - Qiita
    igrep
    igrep 2014/12/11
    やっぱ名前の衝突とBasicObjectは辛いよねぇ。
  • これを読むとRSpecの裏側がどうやって動いているのか分かるかもしれないぜ - Qiita

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

    これを読むとRSpecの裏側がどうやって動いているのか分かるかもしれないぜ - Qiita
    igrep
    igrep 2014/12/02
    めんどくさいのでRSpec止めたい
  • 今日から使える!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
    igrep
    igrep 2014/08/07
  • GitHub - NoRedInk/rspec-retry: retry randomly failing rspec example

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - NoRedInk/rspec-retry: retry randomly failing rspec example
    igrep
    igrep 2014/07/27
  • RSpec の should/stub から expect/allow の早見表 - Qiita

    RSpec 2.14.0 からは allow, expect_any_instance_of, allow_any_instance_of も使えるようになりました。 obj.should ... expect(obj).to ... obj.should_not ... expect(obj).not_to ... obj.should =~ // expect(obj).to match(//) [1, 2, 3].should =~ [3, 2, 1] expect([1, 2, 3]).to match_array([3, 2, 1]) obj.should > 3 expect(obj).to be > 3 lambda { ... }.should raise_error expect { ... }.to raise_error # RSpec 2.14.0 or later

    RSpec の should/stub から expect/allow の早見表 - Qiita
    igrep
    igrep 2014/03/05
  • RSpec Mocks 3.11 - RSpec Mocks - RSpec - Relish

    igrep
    igrep 2014/02/27
    新記法では、「receive_message_chain」ね。
  • Allow vs Stub, what's the difference?

    There are 2 differences but the result is exactly the same. Both are in regards to the rspec mocks/expectations syntax. Use of #allow instead of #stub method. First case uses the new rspec syntax introduced this year. This is now the preferred way of using rspec. Altough the old syntax isn't deprecated, it will probably be disabled by default in rspec3. More info on this topic from the maintainer

    Allow vs Stub, what's the difference?
    igrep
    igrep 2014/02/27
  • Running Specs from Vim, Sent to tmux via Tslime

    When I first started working at thoughtbot, I was impressed to see some of my colleagues sending the current spec in vim to a tmux pane with the press of a key. This makes for an very fast testing/feedback loop and streamlines the TDD process. Determining which spec(s) to run We don’t always want to run the full test suite. Often, we just want to run a single spec or even a single example. We rece

    Running Specs from Vim, Sent to tmux via Tslime