Webpay::Mockで決済周りのテストを書く
この記事
とかを参考にしながらWebpayでの決済機能は実現できたものの、テスト書くのどうしよ。。
と悩んでいたところでWebpay::Mockというものを用意してくださってくれていることに気付く。
決済周りの処理のテストを書く方法をメモしておきます。
gemのREADMEと一緒に、以下の記事も参考にさせていただきました。
WebPayテスト環境のオブジェクトを削除するRakeタスク | EasyRamble
今回実装した環境は以下です。
$ bundle exec rails -v 4.2.6 $ cat .ruby-version 2.3.0
準備
まずはgemを追加してインストール。
# Gemfile gem "webpay-mock"
$ bundle
そしたら、rails_helper.rb
でrequireしてconfigも設定します。
# spec/rails_helper.rb # ... require "webpay/mock" # ... RSpec.configure do |config| # ... config.include WebPay::Mock::WebMockWrapper end
テスト実装
ここまでくれば、specファイルで例えば以下のように使用することができます。
let(:params) { { amount: 1000, currency: 'jpy', card: 'tok_xxxxxxxxx', description: 'test charge' } } let!(:response) { webpay_stub(:charges, :create, params: params) } specify { expect(webpay.charge.create(params).id).to eq response['id'] }
他のtest casesはコチラに。