1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

[Rspec][初心者向け] factorybot,binding.pry,エラーの日本語表記を使えるようにする

Last updated at Posted at 2019-12-05

Rspecを書く際にinstallするもの

Rspecでテストを書く際にGemfileに追加するものを挙げてみます。

  1. binding.pry
  2. factory-bot
  3. エラーの日本語表記

です。

早速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ではエラーを日本語で表示することができます。

以上です。
抜け漏れありましたらぜひ教えてください!

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?