会社のRailsプロジェクトで初見のgemに出くわし、便利だったので書きます。 基本的には公式ドキュメントを参考に書いています。 概要 概要を先にまとめると、Committee で、Specを書く際、API設計をしているopenapiドキュメントの内容に沿った、出力がされているかテストすることができる。 Committee::Rails でrails内でCommitteeの利用を可能にする。 実際にはこの二つの組み合わせによって、assert_schema_conformというメソッドが使用可能になり、それをテスト内で使用できるというもの。 テストで期待するいちいち出力の形を定義しなくていいので便利。 それぞれcommittee、committee-railsというGemで利用する。 Committeeとは JSON Schema, OpenAPI 2, OpenAPI 3.を使って、サー
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
概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: 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を試したい時、
エムスリーでは Tech Talk という技術勉強会をほぼ隔週で行っているのですが、今日は記念すべき 50 回目ということで飲み会がありました。少しだけ飲み過ぎて遅くなってしまったのですが、エムスリーアドベントカレンダー 12/21(月)の記事がこちらになります。 私は日頃趣味では JavaScript 関連を触っていることが多いのですが、業務ではフロントエンドに加えて、Rails を使ってデータの整合性が何よりも大事な業務系のシステムを書いています。このようなシステムを開発する中で、Rails の Migration、特にスキーマ変更に付随するデータ変更について学んだことをいくつか書いてみようと思います。 バックアップ 何はなくとも、本番環境で Migration を実行する前にバックアップを取りましょう。当たり前のことですが、大事なことなので二度言います。バックアップを取りましょう。
There are times in your tests when you need to create multiple instances of the same type of object. FactoryBot1 provides create_list for just these sorts of scenarios. It’s typically sufficient to create two records in these cases, but create_list leaves open the possibility that you could unintentionally create many more records. Consider, for example, testing a feature that pages in additional
Cucumber 利用していますか? 基本的な使い方はわかるんだけど、なんだかもっと上手く使えるんじゃないだろうか?と、もやもやしながら使っています。 少くとも私の周りには Cucumber について情報交換できる人がいないです。 それでも、SlideShare や Speaker Deck なんかに公開されたスライドでよくみかけるので、使い込んでるところでは使い込まれているのだと思います。 Cucumber は Rails プロジェクト以外でも利用されているようで、範囲が広いです。もうちょっといろんな情報がWeb上に流れていても良い気がします。 私が知る限りでは Cucumber についてもっと詳しく書かれているのは The Rspec Book です。 前置きはさておき、 Cucumber の *.feature は Gherkin という 言語で書きます。 その文法について調べたので
2017.12.01 週刊Railsウォッチ(20171201)JSON PatchでRails高速化、Knapsack Proでテスト高速化、Decorator/Presenter gem比較ほか こんにちは、hachi8833です。マカーな皆さまはHigh Sierraアップデートお済みでしょうか。 macOS High Sierra なかたは,昨日ネットを騒がせた対策法についての議論はすべて忘れて,すぐに App Store からセキュリティアップデートを行ってください。再起動不要 — Haruhiko Okumura (@h_okumura) November 30, 2017 続報: macOS High Sierra脆弱性パッチに別の不具合、ファイル共有できなくなる恐れ。ただし修正は簡単 12月最初のウォッチ、いってみましょう。 Rails: 今週の改修 MemCacheSto
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
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く