タグ

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

  • 「アプリケーションが壊れているのに検知できないテストコード」を書かないようにするための、べからず集 - 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 3Myron MarstonIan Dees 2Myron MarstonRSpec Q&ARSpec Q&ARuby 
    【翻訳】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の作成が超絶楽になった!


    RSpecWebwebmockWebWebmockVCR 🏈 VCRVCR使HTTP12GemWebmock使 🐡 GemGemfilebundle
    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-rails3.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'  RubyonRails 
    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


    Fluentdgem  0.1.1   APIBasicObjectmethod_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


    TokyuRuby08Qiita Advent Calendar5LT  RubyRSpec  RSpec(Rubyist)RSpecRSpecRSpec 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?

    What is the difference between the following lines of (rspec) code and regardless if they are the same or different, when should you use one instead of the other? book = double("book") allow(book).to receive(:title) { "The RSpec Book" } versus book = double("book") book.stub(:title).and_return("The RSpec Book")

    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