テストコードでエラーメッセージを確認する方法
テストコードでエラーメッセージを確認する方法を記録しておきます。やることは簡単です。まずテストコード内の「valid?」の後ろに「binding.pry」を記述します。
spec/models/user_spec.rb
it 'emailが空では登録できない' do
user = User.new(nickname: 'test', email: '', password: '000000',
password_confirmation: '000000')
user.valid?
binding.pry
end
そしてターミナルで「user.errors.full_messages」といった記述をすれば、「Email can't be blank」といったエラー文が表示されます。
=> #<ActiveModel::Errors:0x00007faf069c1140
@base=
@details={:email=>[{:error=>:blank}]},
@messages={:email=>["can't be blank"]}>
=> ["Email can't be blank"]
ちなみにテストコードは下記のようなコマンドで実行します。
この時の「bundle exec」とは、Gem同士の依存関係を整理するものです。
以上です。