RSpec

Webpay::Mockで決済周りのテストを書く

この記事 qiita.com とかを参考にしながらWebpayでの決済機能は実現できたものの、テスト書くのどうしよ。。 と悩んでいたところでWebpay::Mockというものを用意してくださってくれていることに気付く。 決済周りの処理のテストを書く方法をメモしておきます…

【RSpec】なんかテストでAssociationが反映されなくて困った

モデル間のassociationを変更した時に、エラーが出た。 モデルファイルに記述する関係性も大丈夫だし、属性の名前も変更した。 じゃあとはなんだ...? と思って $ bin/rake db:reset:migrate とかj $ bin/rake db:drop $ bin/rake db:setup とか試してたんだ…

shared_examplesで冗長なテストファイルをすっきりすまーと

RSpecで、おんなじようなexamplesがたくさん出てきたときに、shared_exampleでまとめてしまって簡単にしたのでソースコードのdiffをメモっとく。 summary テストする項目は、作成したメールのうち、 適切な題になっているか 適切な受信メールアドレスになっ…

【テスト編】ActionMailerでメールを送信する

せっかくなのでTDDで。 方針 Emailのテストに関しては以下の記事が非常に丁寧にまとめてくださっていて感謝感激です。 ActionMailer のメール送信テストを RSpec で行う | EasyRamble Emailのテストを書き始める前にRails Guidesのテストの項目に目を通して…

【RSpec】ActionMailer+ActiveJobのテストを書く

メール送信機能は処理時間が長いので遅延処理にしてる場合が多いと思うのですが、遅延処理のテストってどうやって書くねん!って思って苦労したので書き留めておきます。フィーチャテスト(Integration test)のスペックを書く想定です。 めっちゃいろいろ方法…

seeds.rbの使い方とマスタデータの取り扱いついて考える

1. マスタデータの扱いについて rake db:seedするたびにデータが挿入される。 idをインクリメントで自動挿入するときにめんどくさいことになる。 最初に挿入するマスターデータにassociationを張っている場合は、何回も生成してidが更新されると致命的なので…

Deviseでログイン状態を用いた振る舞いテストを書く

Everyday RailsのChapter 8「フィーチャスペック」を参考に作ってみます。 フィーチャスペック = 統合テスト モデルとコントローラの単体テスト、テストデータを作成するためのファクトリを全部まとめて、フィーチャテストを行う。 ちなみにコントローラテス…

RubyでクイックソートとRSpecでそのテストを書いてみる

Rubyでクイックソートを書いてみます。 require 'benchmark' class Array def qsort return self if self.size <= 1 mark = self[0] right = Array.new left = Array.new (1..self.size-1).each do |i| if self[i] <= mark left.push(self[i]) else right.pu…

【Rails】rspecでAPIのテストを作成する

この記事は以下の記事の続きです 【Rails】簡単API作成 - 凸ろぐ こちらを参考にさせていただきました。 RailsでAPI作成とAPIのテストのまとめ - Rails Webook rspecでAPIのテストを作成する Gemfileに以下を追加。 group :development, :test do gem "rspec…