Rspecを書く際にinstallするもの
Rspecでテストを書く際にGemfileに追加するものを挙げてみます。
- binding.pry
- factory-bot
- エラーの日本語表記
です。
早速Gemfileに追加していきます。
1.binding.pry
group :development, :test do
gem "pry-rails"
end
binding.pryはbinding.pry
と書いた行の部分で処理をストップさせ、コンソールでparamsや変数に入っているものを確認することができます。
テスト以外でも本当によく使っております。助かってます。
使い方の詳細は以下の記事が参考になると思います。
【Rails】Pryについて徹底解説!
自分はRails 5.1.7
を使用しているのですがデフォルトでbyebug
が入っているようなので
こちらを使っても同じようにデバッグできるかと思います。
コンソールでbundleをインストールして使用します。
bundle install
2.factory-bot
1つ1つのテストごとにuserを生成するとコードも長くなり見にくくなってしまいます。
factory-botはテスト用にuserであったりそれに紐づく情報などを保存しておき、テストを書く際に呼び出すことができます。
Gemfileに追加します。
gem "factory_bot_rails"
bundle install
するとspecディレクトリ内にfactoriesというファイルが新たにできているかと思います。
こちらにuserなど生成していきます。
everyday-rspecでの例は以下のようになります。
FactoryBot.define do
factory :user, aliases: [:owner] do
first_name "Aaron"
last_name "Sumner"
sequence(:email) { |n| "tester#{n}@example.com" }
password "dottle-nouveau-pavilion-tights-furze"
end
end
このように書くとテスト内でFactoryBot.create(:user)
と書くことでユーザーの生成ができるようになります。
3. エラーの日本語表記
例えばログインする際にパスワードを入力していない時、
「パスワードを入力してください」などの表示をさせたいと思います。
デフォルトのままでは
- if @user.errors.any?
.form-error
ul
- @user.errors.full_messages.each do |msg|
li= msg
このような感じで書いても、英語のエラー文が出てしまうのではないかと思います。
日本語表記させるにはまず、Gemfileに
gem "rails-i18n"
bundle install
します。
このあと、config/localesのディレクトリ下に、
ja.yml
というファイルを作成し、
ja:
models:
attributes:
full_name: フルネーム
user_name: ユーザーネーム
email: メールアドレス
password: パスワード
このような感じで書いていきます。
次に、config/apprication.jsに
config.i18n.default_locale = :ja
これを書くことで、Viewではエラーを日本語で表示することができます。
以上です。
抜け漏れありましたらぜひ教えてください!