Rspec 条件つきバリデーションでエラー
現在createアクションの時だけ実行するバリデーションを用意しています
この影響で、Rspeのテストの時にエラーが発生します
validates :nickname,:email,:password,presence: true, on: :create
Rspec
uspec/factories/user.rb
FactoryBot.define do
factory :user do
nickname { "test" }
email { "test@gmail.com" }
password { "test2020" }
password_confirmation { "test2020" }
end
end
spec/models/user_spec.rb
require 'rails_helper'
RSpec.describe Tweet, type: :model do
before do
@user = create(:user)
end
context 'nicknameカラム' do
it '未入力でないこと' do
@user.nickname = ''
is_expected.to eq false
end
end
end
エラー
1) User バリデーションテスト nicknameカラム 未入力でないこと
Failure/Error: is_expected.to eq false
expected: false
got: true
(compared using ==)
Diff:
@@ -1 +1 @@
-false
+true
# ./spec/models/user_spec.rb:19:in `block (4 levels) in <top (required)>'
createアクションのみではなく、常にバリデーションを実行するとエラーは発生しません
こちらがヒントになるのかと読んでみましたが、エラーは変わりません
よろしくお願いします
0