回答編集履歴

1

FactoryBotについて追加

2021/02/02 12:17

投稿

oakbow
oakbow

スコア227

test CHANGED
@@ -25,3 +25,65 @@
25
25
  end
26
26
 
27
27
  ```
28
+
29
+
30
+
31
+ --------
32
+
33
+
34
+
35
+ FactoryBot で生成されている user の confirmation が完了していないように見えます。
36
+
37
+ Devise の認証を使う場合、高確率でメール認証を使用していると思います。
38
+
39
+ これを使っている場合、メール認証の終わったユーザでなければログインできません。
40
+
41
+
42
+
43
+ ```
44
+
45
+ FactoryBot.define do
46
+
47
+ factory :user do
48
+
49
+ sequence(:email) { |n| "sample#{n}@example.com" }
50
+
51
+ name { Faker::Name.name }
52
+
53
+ password { 'password' }
54
+
55
+
56
+
57
+ trait :confirmed do
58
+
59
+ after_create { |user| user.confirm! }
60
+
61
+ end
62
+
63
+ end
64
+
65
+ end
66
+
67
+ ```
68
+
69
+
70
+
71
+ こんな風に定義をしておくと、
72
+
73
+
74
+
75
+ ```
76
+
77
+ let(:user) { create(:user, :confirmed) }
78
+
79
+ ```
80
+
81
+
82
+
83
+ みたいな感じでメール認証済みのユーザを作成できます。
84
+
85
+ `confirm!` は `skip_confirmation!` の方がいいかもしれません。
86
+
87
+
88
+
89
+ すでに解決済みでしたが、せっかく書いたので残しておきます。