やったこと
WebMock の stub を利用して rspec でテストを書いてみます。
確認環境
$ ruby --version
ruby 2.6.3p62 (2019-04-16 revision 67580) [x86_64-darwin17]
$ rails --version
Rails 5.2.3
$ gem list | grep rspec-rails
rspec-rails (3.8.2)
調査
インストール
Gemfile
group :development, :test do
gem 'webmock'
end
$ bundle install
spec/models/task5_spec.rb
require 'rails_helper'
require 'webmock/rspec'
RSpec.describe Task, type: :model do
before do
WebMock.enable!
end
it 'test1' do
WebMock.stub_request(:get, "http://localhost").to_return(
body: JSON.generate({b: 3, c: 8}),
status: 200
)
p Net::HTTP.get('localhost', '/')
end
end
出力結果
$ bundle exec rspec spec/models/task5_spec.rb
"{\"b\":3,\"c\":8}"
.
Finished in 0.0048 seconds (files took 1.5 seconds to load)
1 example, 0 failures