回答編集履歴

1

追記

2022/10/29 10:25

投稿

winterboum
winterboum

スコア23347

test CHANGED
@@ -6,3 +6,10 @@
6
6
  expect(user).to be_invalid
7
7
  にしてみて。
8
8
 
9
+ 追記
10
+ user.reload.user_name とすれば、UPDATEの時として validateしてくれるか? というのも問題ですが、おかしい所が他にも2点あります。
11
+ 1. user.reload は userをもう一度DBから読み込みなおす ということです。
12
+  しかしこの時点では userはDBにはありません。buildしただけで save していませんから。 なので、ActiveRecord::RecordNotFound です
13
+ 2. user.reload がうまくいったとして、expect(user.reload.user_name).to be_invalid は user が .to be_invalid かどうか、は見ていません。user_name が be_imvalidかどうかを見ています。
14
+  つまり、class Nill か class Stringにたいしてみています。 これは エラーになりそうですね
15
+