 
  
  Rspec 3.5についての記載となります。 documentにallow-any-instance-of/expect-any-instance-ofは使わない方がよいと書かれています。 This feature is sometimes useful when working with legacy code, though in general we discourage its use for a number of reasons: The rspec-mocks API is designed for individual object instances, but this feature operates on entire classes of objects. As a result there are some semantically confusing edge
はじめに やりたいこと:カッコよくグリーンを出したい! 「テストは大事!」とは言うものの、どんなRSpecを書いたらいいのかわからない...。 そんな状況が、Railsのお仕事に本格的に関わるようになってから、続いておりました。 そもそも自動テストには憧れがありますし、specを実行して、ターミナルに緑の文字を出したいのはやまやまです。でも、何を書けばいいのかわからない。 そんな時の、とりあえずの取りかかりの例を載せてみます。 ※ この記事の例について: 下記の例は、実際はテストとして無理に書く必要はないものだったりします。 自明なものを書きすぎると、たとえば全てのテストを通すのにも非常に時間がかかってしまいますので、このあたりは、rspecを動かす場合の確認用、1例として見ていただけると幸いです。 ※ これからRspecを始めたい方 / 初心者の方へ (20180523 追記) @jnc
 
      
  rspec2.99でinclude_examplesを使用しています。 spechoge.rb describe 'hoge_type' do before do end include_examples 'toarutesuto' end spec/support/lib/kyouyuu.rb require 'spec_helper' describe "テストを共有" do before do end shared_examples 'toarutesuto' do before do end it'' do end テストを実行すると、以下ワーニングが出ます。 Deprecation Warnings: -------------------------------------------------------------------------------- Accessing
 
      
  最近script/consoleをすると下記のような警告がでるようになっていました。 irb: warn: can't alias context from irb_context.起動時に警告が出る以外は特に支障はないのでしばらく放置していたのですが、今日やる気が出たので原因を調査してみました。するとenvironment.rbで config.gem "rspec-rails", :lib => "spec" などとしていたのが原因だとわかりました。上記コードをenvironment/test.rbに移したら警告が出なくなりました。 参考 "irb: warn: can't alias context from irb_context." when console loads - Ruby on Rails: Core | Google Groups
概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: Ruby on Rails / RSpec - test execution count to make your code better 原文公開日: 2018/02/24 著者: Paweł Dąbrowsk 参考: RSpec 3.12ドキュメント Class: RSpec::Mocks::MessageExpectation 2018/04/02: 初版公開 2023/09/21: 更新 RSpecでは、指定のメソッドが呼び出される回数をexpectで指定できます。その方法を説明する前に、呼び出し回数を知ることの重要性についてお話します。これはコードの振る舞いを制御するためのものです。説明のため、わざと誤ったコードを書いてみます。 class SomeClass def something @something = ser
 
      
  RSpec のテストダブルで呼び出しているクラスやメソッドの変更を検出する方法についてまとめます。 スライド まずは Sandi Metz 氏の自動テストに関するスライドをご覧ください。 Verifying doubles スライドではテストダブルが実際にAPIと同期しているかチェックするためのライブラリ群が紹介されています。 RSpec3 からは該当機能が標準で取り込まれています。 relishapp.com 例えば、 RSpec 2 で double を利用していた箇所を RSpec 3 で instance_double, class_double 等を利用するように変更すると、 テストダブルの変更を検出してくれるようになります。 これにより該当クラスやメソッドの名前が変更された場合に変更を検出できるようになります。 さらに RSpec の設定値を変えることで検証範囲を変更することが
 
      
  前回はRSpecの基本メソッドについてまとめました。今回はMockについてまとめます。 テストダブルとは テスト対象が依存しているモジュールやリソースの代役のこと。結合テストのような複雑な環境を事前に用意せずとも目的の機能をテスト可能となるように振る舞いをシミュレートする。 irb,pry等でMockを試したい時、
Sam Phippen, Myron Marston, Jon Rowe, Yuji NakayamaMay 4, 2017RSpec 3.6 がリリースされました! 私たちは semantic versioning への準拠を約束しているので、 既に RSpec 3 をお使いの場合、このバージョンへのアップグレードは簡単なはずです。 しかし、もしバグを見つけた場合は教えてください。 できるだけ早く修正をし、パッチ版をリリースします。 RSpec は世界中のコントリビュータと共に、コミュニティ主導のプロジェクトであり続けます。 今回のリリースには、 50 人以上のコントリビュータによる 450 以上のコミットと、 120 以上の pull request が含まれています! このリリースに向けて力になってくれたみなさん、ありがとう! 主な変更 Core: Example の外で発生したエラ
 
      
  Yes, I know, that testing private methods it's not a good idea (and I read this thread - http://www.ruby-forum.com/topic/197346 - and some others) But how can I test the following code? I use xmpp4r. In my public method #listen I start receive jabber messages like so: def listen @client.add_message_callback do |m| do_things_with_message(m) end end private def do_things_with_message(m) # end #add_m
 
      
  Sergii Makagon Ruby Developer with more than 17 years of experience. I like TDD, Clean Code, Design Patterns and Domain-Driven Design. Read more. Follow @makagon Hello! I'm back from my lovely trip to San-Francisco and eager to keep writing more articles for this blog. Today we will try to figure out the difference between mocks and stubs. Let's define what is mock and what is stub first. Since we
Two ways for testing preloading/eager-loading of ActiveRecord associations in Rails … and check why 5600+ Rails engineers read also this Two ways for testing preloading/eager-loading of ActiveRecord associations in Rails As a developer who cares about performance you know to avoid N+1 queries by using #includes, #preload or #eager_load methods . But is there a way of checking out that you are doin
 
      
  リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く
