3.Rails|VCR

当社では、課金処理周りでAPIを叩く際のテスト(RSpec)で使っているらしい。
大まかには理解できたが、いまいち具体的なイメージが付かなかったので調べてみた。

例えば課金周りでは、安易にAPIを叩くと実際に課金処理が行われてしまったりと問題が多い。
そこでモックを用意する必要に駆られるが、一からモックを実装するには実装コストもかかる…。

という時に、VCR(RailsのGem)を使うと良いということらしい。
これを使えば、内部的にはwebmockと下記のcassetteの機能を併用できるようだ。

カセット(cassette)と呼ばれるモックデータを使うことで、わざわざ自分で用意する必要が無くなる。
モックデータが無ければAPIコールを行なった際のリクエスト/レスポンス(HTTP通信内容)をYAMLファイルに保存。
2回目以降は実際にAPIを叩かずに同じレスポンスを再現することで、本物に限りなく近いモックデータを使ってテストをすることができる。

ちなみにVCRが何の略かは、調べたけど分からない…。
Video Cassette Recorder…?とすると、Videoの意味が分からないし…orz

GitHub github.com

RSpec公式 www.betterspecs.org

・参照サイト tech.actindi.net