コード日進月歩

しんくうの技術的な小話、メモ、つれづれ、など

RubyのWebMockにて純粋にAPIコールしたかを見たいときは a_request を使うと簡便

結果が知りたいんじゃない、とりあえずリクエストを飛ばしたかを知りたいんだ。みたいなときに使えるやつ

環境

$ bundle exec rspec --version
RSpec 3.8
  - rspec-core 3.8.0
  - rspec-expectations 3.8.2
  - rspec-mocks 3.8.0
  - rspec-rails 3.8.1
  - rspec-support 3.8.0

書き方

https://example.com に 1回でもgetしたかを書きたい場合は下記

expect(a_request(:get, "https://example.com")).to have_been_made.once

have_been_made は WebMock側で用意されたmatcha。あとにつく once もバリエーションがいくつかある。詳しくはサンプルを見るとよいと思います。

参考サイト