API側も自分で作ってる時など、webmockをrequireしてるのに「本当に大丈夫かな?」と実リクエストを飛ばしたい時があるので下記。

WebMock.allow_net_connect!

残したままpushすると大惨事になるので注意が要る。

webmockがmockしてくれない

「webmock使ってるのにresponse bodyが空で帰ってくる」

webmockを勝手にhttp proxy的に捉えてて「おかしいなあ」なんてハマってたんですがwebmockはhttpをmockしてるわけじゃなくて特定のclassをmockしてるだけなんですよね。考えてみれば当たり前なんですがREADMEにちゃんと対応してるライブラリが書いてある。

Supported HTTP libraries

  • Net::HTTP and libraries based on Net::HTTP (i.e RightHttpConnection, REST Client, HTTParty)
  • HTTPClient
  • Patron
  • EM-HTTP-Request
  • Curb (currently only Curb::Easy)
  • Typhoeus (currently only Typhoeus::Hydra)
  • Excon

parallel requestが簡単にできるtyphoeusのメソッドの中で、single requestをするpostメソッドとかを使ってたら常にresponse bodyが空。(何故parallel requestのためのライブラリでsingle requestを使ったのか小一時間問い詰めたい > 俺)

ちゃんとTyphoeus::Hydraしか対応してないって書いてありますね。RestClient.postにしたらあっさり動きました。

しかし、コジャレたライブラリにチャレンジしていく姿勢は失わず行きたい!