Rspec
本来はDependencyInjectionでやるべきかもだけど。 そうもいかないケースもあるわけで。 # 既存クラス let(:api_client) { ::MyApp::ApiClient } let(:api_response) { double('api_response', status: 200) } # post_xxxメソッドを上書きして、api_response…
Rsils+RspecでActionMailerのテストの書き方知らなかったのでメモ。 ## 設定 config.action_mailer.delivery_method = :test ## テスト expect(ActionMailer::Base.deliveries.size).to eq(1) # メールを送った件数 expect(ActionMailer::Base.deliveries.fi…
RailsEngineを作る手順を雑にメモする。 Docker/Rspecを使う前提。 docker設定 Dockerfile FROM ruby:2.6.6 ENV NODE_VERSION 10.12.0 ENV BUNDLER_VERSION 1.17.3 ENV LANG C.UTF-8 # https://stackoverflow.com/questions/55361762/apt-get-update-fails-w…
controllerのテストをまともに書いたことなかったので。 describe TestController, type: :controller do let(:account) { create(:account) } describe 'auth' do context '有効なトークンを渡したとき' do before do token = TokenService.build_token(acc…
これまでbegin-rescueで愚直にやってたので、もう少しシュッとした書き方を。 require 'spec_helper' describe TokenService do describe :validate! do context '改ざんしたトークンを渡す' do # 処理を定義 subject { token = TokenService.build_token To…
APIクライアントを外から注入できるようにして、 モックを渡してローカル環境単体でテストできようにした例。 require 'spec_helper' class DummyService # # APIクライアントを外から指定できるようにして # 単体でテストできるようにする # def self.get_i…
ずっとbefore&インスタンス変数でやってたので、let使うやり方をメモしておく。 require 'spec_helper' describe 'beforeとletの違いについて' do context 'インスタンス変数を使う場合' do before do @account = create(:account) end it 'アカウントが存…
既存RailsアプリにRspecを入れる - コピペコードで快適生活 の続き。まず、JSONのテストを簡単にするgemを入れる。 gem 'json_expressions' テストコードはこんな感じで書ける。 require 'rails_helper' require 'json_expressions/rspec' describe "GET api…