質問編集履歴

4

追記

2019/12/31 14:05

投稿

退会済みユーザー
test CHANGED
@@ -1 +1 @@
1
- [Rails5]RSpecでletを用いたテストが通らない
1
+ (削除予定)[Rails5]RSpecでletを用いたテストが通らない
test CHANGED
File without changes

3

追記

2019/12/31 14:05

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -1,3 +1,7 @@
1
+ (**この質問は一度解決後、別のエラー発生により編集をしてしまいました。ご了承ください**)
2
+
3
+
4
+
1
5
  質問をご覧いただきありがとうございます。
2
6
 
3
7
  Ruby on Rails5の入門書でRSpecを学び、コードを書いていましたが、letを用いたコードでエラーが生じてしまいました。

2

エラー内容の変更

2019/12/31 14:00

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -1,6 +1,8 @@
1
1
  質問をご覧いただきありがとうございます。
2
2
 
3
- Ruby on Rails5の入門書でRSpecを学び、コードを書いていましたが、letを用いたコードでエラーが生じてしまいました。(Rails 6.0.1)
3
+ Ruby on Rails5の入門書でRSpecを学び、コードを書いていましたが、letを用いたコードでエラーが生じてしまいました。
4
+
5
+ (Rails 6.0.1 macOS X ruby2.6.5)
4
6
 
5
7
  以下コード
6
8
 
@@ -8,111 +10,19 @@
8
10
 
9
11
  ```
10
12
 
11
- require 'rails_helper'
12
-
13
-
14
-
15
- describe 'タスク管理機能', type: :system do
16
-
17
- describe '一覧表示機能' do
18
-
19
- let(:user_a) {FactoryBot.create(:user, name: 'ユーザーA', email: 'a@example.com')}
20
-
21
- let(:user_b) {FactoryBot.create(:user, name: 'ユーザーB', email: 'b@example.com')}
22
-
23
-
24
-
25
- before do
26
-
27
- user_a = FactoryBot.create(:user, name: 'ユーザーA', email: 'a@example.com')
28
-
29
- FactoryBot.create(:task, name: '最初のタスク', user: user_a)
30
-
31
-
32
-
33
- visit login_path
34
-
35
- fill_in 'メールアドレス', with: ligin_user.email
36
-
37
- fill_in 'パスワード', with: login_user.password
38
-
39
- click_button 'ログインする'
40
-
41
- end
42
-
43
-
44
-
45
- context 'ユーザーAがログインしているとき' do
46
-
47
- let(:login_user) {user_a}
48
-
49
-
50
-
51
- it 'ユーザーAが作成したタスクが表示される' do
52
-
53
- expect(page).to have_content '最初のタスク'
54
-
55
- end
56
-
57
- end
58
-
59
-
60
-
61
- context 'ユーザーBがログインしている時' do
62
-
63
- let(:login_user) {user_b}
64
-
65
-
66
-
67
- before do
68
-
69
- FactoryBot.create(:user, name: 'ユーザーB', email: 'b@example.com')
70
-
71
- end
72
-
73
-
74
-
75
- it 'ユーザーAが作成したタスクが表示されない' do
76
-
77
- expect(page).to have_no_content '最初のタスク'
78
-
79
- end
80
-
81
- end
82
-
83
- end
84
-
85
- end
86
-
87
-
88
-
89
- ```
90
-
91
- ターミナル上のエラーは次の通りです。
92
-
93
- ```terminal
94
-
95
- $bundle exec rspec spec/system/tasks_spec.rb
96
-
97
-
98
-
99
- (省略)
100
-
101
13
  Failures:
102
14
 
103
15
 
104
16
 
105
17
  1) タスク管理機能 一覧表示機能 ユーザーAがログインしているとき ユーザーAが作成したタスクが表示される
106
18
 
107
- Failure/Error: fill_in 'ルアドレス', with: ligin_user.email
19
+ Failure/Error: let(:user_a) {FactoryBot.create(:user, name: 'ザーA', email: 'a@example.com')}
108
20
 
109
21
 
110
22
 
111
- NameError:
23
+ ActiveRecord::RecordInvalid:
112
24
 
113
- undefined local variable or method `ligin_user' for #<RSpec::ExampleGroups::Nested::Nested::A:0x00007fd566cc9780>
25
+ バリデーションに失敗しました: Email translation missing: ja.activerecord.errors.models.user.attributes.email.taken
114
-
115
- Did you mean? login_user
116
26
 
117
27
 
118
28
 
@@ -120,21 +30,23 @@
120
30
 
121
31
 
122
32
 
33
+ # ./spec/system/tasks_spec.rb:5:in `block (3 levels) in <top (required)>'
34
+
35
+ # ./spec/system/tasks_spec.rb:19:in `block (4 levels) in <top (required)>'
36
+
123
37
  # ./spec/system/tasks_spec.rb:13:in `block (3 levels) in <top (required)>'
124
38
 
125
39
 
126
40
 
127
41
  2) タスク管理機能 一覧表示機能 ユーザーBがログインしている時 ユーザーAが作成したタスクが表示されない
128
42
 
129
- Failure/Error: fill_in 'ルアドレス', with: ligin_user.email
43
+ Failure/Error: FactoryBot.create(:user, name: 'ザーB', email: 'b@example.com')
130
44
 
131
45
 
132
46
 
133
- NameError:
47
+ ActiveRecord::RecordInvalid:
134
48
 
135
- undefined local variable or method `ligin_user' for #<RSpec::ExampleGroups::Nested::Nested::B:0x00007fd565f51148>
49
+ バリデーションに失敗しました: Email translation missing: ja.activerecord.errors.models.user.attributes.email.taken
136
-
137
- Did you mean? login_user
138
50
 
139
51
 
140
52
 
@@ -142,11 +54,11 @@
142
54
 
143
55
 
144
56
 
145
- # ./spec/system/tasks_spec.rb:13:in `block (3 levels) in <top (required)>'
57
+ # ./spec/system/tasks_spec.rb:30:in `block (4 levels) in <top (required)>'
146
58
 
147
59
 
148
60
 
149
- Finished in 3.06 seconds (files took 1.34 seconds to load)
61
+ Finished in 3.37 seconds (files took 1.33 seconds to load)
150
62
 
151
63
  2 examples, 2 failures
152
64
 
@@ -162,6 +74,80 @@
162
74
 
163
75
  ```
164
76
 
77
+ エラーを見て、ja.ymlの翻訳が正しく行われていないのかと思いましたが、書いてある内容は入門書通りとなっておりました
78
+
79
+ `taskleaf/config/locales/ja.yml`
80
+
81
+ ```
82
+
83
+ ja:
84
+
85
+ activerecord:
86
+
87
+ errors:
88
+
89
+ messages:
90
+
91
+ record_invalid: 'バリデーションに失敗しました: %{errors}'
92
+
93
+ restrict_dependent_destroy:
94
+
95
+ has_one: "%{record}が存在しているので削除できません"
96
+
97
+ has_many: "%{record}が存在しているので削除できません"
98
+
99
+ models:
100
+
101
+ task: タスク
102
+
103
+ attributes:
104
+
105
+ task:
106
+
107
+ id: ID
108
+
109
+ name: 名称
110
+
111
+ description: 詳しい説明
112
+
113
+ created_at: 登録日時
114
+
115
+ updated_at: 更新日時
116
+
117
+ helpers:
118
+
119
+ select:
120
+
121
+ prompt: 選択してください
122
+
123
+ submit:
124
+
125
+ create: 登録する
126
+
127
+ submit: 保存する
128
+
129
+ update: 更新する
130
+
131
+ user:
132
+
133
+ name: 名前
134
+
135
+ email: メールアドレス
136
+
137
+ admin: 管理者権限
138
+
139
+ password: パスワード
140
+
141
+ password_confirmation: パスワード(確認)
142
+
143
+ created_at: 登録日時
144
+
145
+ updated_at: 更新日時
146
+
147
+ ```
148
+
149
+
150
+
165
151
  ディレクトリ
166
152
 
167
153
  ![ディレクトリ](43d2a5d8b3ebeb317f1b2180e0a62bbe.png)

1

追記

2019/12/31 13:53

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -167,3 +167,7 @@
167
167
  ![ディレクトリ](43d2a5d8b3ebeb317f1b2180e0a62bbe.png)
168
168
 
169
169
  以上です。よろしくお願いします。
170
+
171
+
172
+
173
+ 追記:この入門書ではテストの結果が `2 examples, 0 failures` となっています。