title: “ [Gem] Webmock RSpecのWebアクセスのモックを作成してくれる超便利Gem [Rails]”
category: Rails

😼 tags: [Rails, Ruby, Gem]

Where?WebからデータをダウンロードするプログラムのRSpecで、Webにいちいちアクセスしたくない場合に重宝するのが、「Webmock」です。これを使えばある時点のデータを使えるので、テスト結果が更新されて変わるような事態を防ぐことができます!

bblimke/Webmock · GitHub


🎉 Gemのインストール

いつ戻おりGemfileに以下を追加して、bundle installを実行してください。

group :test do
# HTTP requests用のモックアップを作ってくれる
gem 'webmock'
end

🤔 Webモックの使い方

使い方もいたって簡単です。いつものRSpecファイルに次のような記述を追加を追加。

require "spec_helper"
require "webmock/rspec"
# これをつけておくとEXAMPLE_SITE_URL以外は普通にWebにアクセス
# すべてのhttpリクエストを行わない場合は、下を削除
WebMock.allow_net_connect!

EXAMPLE_SITE_URL = "http://www.iana.org/domains/example/"

describe "" do
before do
# EXAMPLE_SITE_URL にアクセスしたら EXAMPLE_SITE_BODY を返すスタブを作成
stub_request(:get, EXAMPLE_SITE_URL).to_return({:body => EXAMPLE_SITE_BODY,:status => 200})
@doc = Nokogiri::HTML(open(EXAMPLE_SITE_URL))
@title = @doc.search("title").inner_text
end

subject { @title }
it { should == "Koreha Example Domain" }
end

# テスト用のフィード
EXAMPLE_SITE_BODY = <<-eof< span>



Koreha Example Domain









Example Domain


This domain is established to be used for illustrative examples in documents. You do not need to


coordinate or ask for permission to use this domain in examples, and it is not available for
registration.


More information...





EOF

もし、興味があればぜひチャレンジしてみてください!

bblimke/Webmock · GitHub

🚕 参考リンク

外部に HTTP アクセスする機能の単体テストで WebMock 使ってみた - present

🍣 変更来歴

01/22 14:55 Gemfileのgroupをdevelopment => testに変更

🖥 VULTRおすすめ

VULTR」はVPSサーバのサービスです。日本にリージョンがあり、最安は512MBで2.5ドル/月($0.004/時間)で借りることができます。4GBメモリでも月20ドルです。 最近はVULTRのヘビーユーザーになので、「ここ」から会員登録してもらえるとサービス開発が捗ります!

📚 おすすめの書籍