こんにちは!kossyです!
本日気になったニュースはこちら
dev.classmethod.jp
サーバレスについて少し調べてみましたが、よくわかりませんでした、、、
オンプレやレンタルサーバとも違うみたいですね。
このサービスを用いることで、オンプレやレンタルサーバと比較して
ランニングコストを抑えることができると仮定するならば、
今後はクラウドサーバー環境構築のノウハウを蓄積するよりも、
こちらの技術のノウハウを貯めた方がいいかもしれません。
さて、今回はRailsのテストフレームワークであるRSpecで認証系のGemとして有名なdeviseを使う方法を
ブログに残してみたいと思います。
環境
Rails 5.1.6
Ruby 2.5.1
RSpec 3.8.0
MacOS Mojave
マクロファイルの作成
controller_macros.rbという名前でファイルを作成し、loginメソッドを定義します。
macrosってなんだ?と思いましたが、
マクロ(ヘルパーメソッド)を定義してフィーチャースペックのユーザー切替えを楽に行う - Qiita
こちらによると、マクロ = ヘルパーメソッド
という認識で間違いなさそうです。
以下参考コードです。
spec/support/controller_macros.rb
module ControllerMacros def login(user) @request.env["devise.mapping"] = Devise.mappings[:user] sign_in user end end
マクロファイルの読み込み
次にmacrosファイルを読み込む記述をします。
include以降の記述でdeviseとmacrosを読み込む処理を記述しています。
spec/rails_helper.rb
RSpec.configure do |config| Dir[Rails.root.join('spec/support/**/*.rb')].each { |f| require f } config.include Devise::Test::ControllerHelpers, type: :controller config.include ControllerMacros, type: :controller end
これでRSpec内でdeviseを使うことができます。
参考にさせていただいたサイト
rspecのテスト環境でdeviseにログインする方法【rails】 - Qiita
マクロ(ヘルパーメソッド)を定義してフィーチャースペックのユーザー切替えを楽に行う - Qiita