質問編集履歴
7
追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -124,6 +124,10 @@
|
|
124
124
|
|
125
125
|
```
|
126
126
|
|
127
|
+
|
128
|
+
|
129
|
+
###試したこと
|
130
|
+
|
127
131
|
エラーコードの
|
128
132
|
|
129
133
|
> expected to find text
|
@@ -134,13 +138,55 @@
|
|
134
138
|
|
135
139
|
のは分かるのですが、どこを直すべきか分かりません。
|
136
140
|
|
141
|
+
|
142
|
+
|
143
|
+
また、
|
144
|
+
|
145
|
+
```
|
146
|
+
|
147
|
+
it "incomeの新規登録" do
|
148
|
+
|
149
|
+
#直接incomes#createのパスを送る
|
150
|
+
|
151
|
+
visit incomes_path
|
152
|
+
|
153
|
+
expect(page).to have_content 'Create Income'
|
154
|
+
|
155
|
+
click_button 'Create Income'
|
156
|
+
|
157
|
+
#income/newページをrender
|
158
|
+
|
159
|
+
visit current_path
|
160
|
+
|
161
|
+
#値を全て入力してCreate Incomeボタンを押す
|
162
|
+
|
163
|
+
```
|
164
|
+
|
165
|
+
上のようにvisitで直接createアクションのパスを送ったところ、
|
166
|
+
|
137
|
-
|
167
|
+
以下のようなエラーが起きました。
|
168
|
+
|
138
|
-
|
169
|
+
```
|
170
|
+
|
139
|
-
|
171
|
+
# Capybara::ExpectationNotMet:
|
172
|
+
|
140
|
-
|
173
|
+
# expected to find text "Create Income" in "ホーム\n収入を記録\n支出を記録\n収入を確認\n支出を確認\nカテゴリを選択してください\n給与\n配当\nおこづかい\nその他"
|
174
|
+
|
175
|
+
# ./spec/system/incomes_spec.rb:14:in `block (2 levels) in <top (required)>'
|
176
|
+
|
177
|
+
```
|
178
|
+
|
179
|
+
**create income**ボタン以外のテキストは見つかっているようなので、
|
180
|
+
|
181
|
+
form_forとbootstrapを使ってボタンを書いた事が原因で
|
182
|
+
|
183
|
+
テキストが見つけられていないのかと思っています
|
184
|
+
|
185
|
+
|
186
|
+
|
141
|
-
###
|
187
|
+
###コード
|
142
|
-
|
188
|
+
|
143
|
-
|
189
|
+
**収入を記録**ボタンのコード
|
144
190
|
|
145
191
|
```Header
|
146
192
|
|
@@ -180,25 +226,125 @@
|
|
180
226
|
|
181
227
|
</header>
|
182
228
|
|
183
|
-
|
184
|
-
|
185
|
-
<%
|
186
|
-
|
187
|
-
=begin
|
188
|
-
|
189
|
-
%>
|
190
|
-
|
191
|
-
<li class="nav-item"><%= link_to "収入を編集", edit_income_path(@income), class:"nav-link" %></li>
|
192
|
-
|
193
|
-
<%
|
194
|
-
|
195
|
-
=end
|
196
|
-
|
197
|
-
%>
|
198
|
-
|
199
|
-
```
|
229
|
+
```
|
230
|
+
|
200
|
-
|
231
|
+
incomesコントローラーのコード
|
232
|
+
|
233
|
+
|
234
|
+
|
201
|
-
|
235
|
+
```
|
236
|
+
|
237
|
+
class IncomesController < ApplicationController
|
238
|
+
|
239
|
+
|
240
|
+
|
241
|
+
def index
|
242
|
+
|
243
|
+
@incomes = Income.all
|
244
|
+
|
245
|
+
if params[:category].present?
|
246
|
+
|
247
|
+
@incomes = @incomes.get_by_category params[:category]
|
248
|
+
|
249
|
+
end
|
250
|
+
|
251
|
+
end
|
252
|
+
|
253
|
+
|
254
|
+
|
255
|
+
def show
|
256
|
+
|
257
|
+
@income = Income.find(params[:id])
|
258
|
+
|
259
|
+
end
|
260
|
+
|
261
|
+
|
262
|
+
|
263
|
+
def new
|
264
|
+
|
265
|
+
@income = Income.new
|
266
|
+
|
267
|
+
end
|
268
|
+
|
269
|
+
|
270
|
+
|
271
|
+
def edit
|
272
|
+
|
273
|
+
@income = Income.find(params[:id])
|
274
|
+
|
275
|
+
end
|
276
|
+
|
277
|
+
|
278
|
+
|
279
|
+
def create
|
280
|
+
|
281
|
+
@income = Income.new(income_params)
|
282
|
+
|
283
|
+
if @income.save
|
284
|
+
|
285
|
+
redirect_to action: index
|
286
|
+
|
287
|
+
else
|
288
|
+
|
289
|
+
flash.now[:danger] = '入力に失敗しました。全ての項目を記入してください'
|
290
|
+
|
291
|
+
render 'new'
|
292
|
+
|
293
|
+
|
294
|
+
|
295
|
+
end
|
296
|
+
|
297
|
+
end
|
298
|
+
|
299
|
+
|
300
|
+
|
301
|
+
def update
|
302
|
+
|
303
|
+
@income = Income.find(params[:id])
|
304
|
+
|
305
|
+
if @income.update(income_params)
|
306
|
+
|
307
|
+
flash[:success] = "編集に成功しました"
|
308
|
+
|
309
|
+
redirect_to action: 'index'
|
310
|
+
|
311
|
+
else
|
312
|
+
|
313
|
+
render 'edit'
|
314
|
+
|
315
|
+
end
|
316
|
+
|
317
|
+
|
318
|
+
|
319
|
+
end
|
320
|
+
|
321
|
+
|
322
|
+
|
323
|
+
def destroy
|
324
|
+
|
325
|
+
@income.destroy
|
326
|
+
|
327
|
+
flash[:success] = "削除に成功しました"
|
328
|
+
|
329
|
+
redirect_to root_url
|
330
|
+
|
331
|
+
end
|
332
|
+
|
333
|
+
|
334
|
+
|
335
|
+
private
|
336
|
+
|
337
|
+
def income_params
|
338
|
+
|
339
|
+
params.require(:income).permit(:category, :price, :date, :memo)
|
340
|
+
|
341
|
+
end
|
342
|
+
|
343
|
+
end
|
344
|
+
|
345
|
+
```
|
346
|
+
|
347
|
+
incomes#newページのコード
|
202
348
|
|
203
349
|
```NewIncomePage
|
204
350
|
|
@@ -256,11 +402,13 @@
|
|
256
402
|
|
257
403
|
<% end %>
|
258
404
|
|
259
|
-
|
260
|
-
|
261
|
-
```
|
405
|
+
```
|
262
|
-
|
406
|
+
|
263
|
-
###
|
407
|
+
###補足情報
|
408
|
+
|
409
|
+
|
410
|
+
|
411
|
+
rspec -v
|
264
412
|
|
265
413
|
RSpec 3.9
|
266
414
|
|
6
追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -124,13 +124,13 @@
|
|
124
124
|
|
125
125
|
```
|
126
126
|
|
127
|
-
|
127
|
+
エラーコードの
|
128
128
|
|
129
129
|
> expected to find text
|
130
130
|
|
131
131
|
|
132
132
|
|
133
|
-
見つかったテキストがトップページのものなのでページ遷移に失敗している
|
133
|
+
の箇所から、見つかったテキストがトップページのものなのでページ遷移に失敗している
|
134
134
|
|
135
135
|
のは分かるのですが、どこを直すべきか分かりません。
|
136
136
|
|
5
ログの追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -68,9 +68,63 @@
|
|
68
68
|
|
69
69
|
```
|
70
70
|
|
71
|
-
|
72
|
-
|
73
|
-
|
71
|
+
このようなエラーが表示され、ログは以下のようになっています。
|
72
|
+
|
73
|
+
```TestLog
|
74
|
+
|
75
|
+
[1m[35m (0.2ms)[0m [1m[34mSELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC[0m
|
76
|
+
|
77
|
+
[1m[35m (0.1ms)[0m [1m[36mbegin transaction[0m
|
78
|
+
|
79
|
+
Started GET "/" for 127.0.0.1 at 2020-01-29 15:45:42 +0900
|
80
|
+
|
81
|
+
Processing by StaticPagesController#home as HTML
|
82
|
+
|
83
|
+
Rendering static_pages/home.html.erb within layouts/application
|
84
|
+
|
85
|
+
[1m[35m (0.3ms)[0m [1m[34mSELECT SUM("incomes"."price") FROM "incomes" WHERE "incomes"."date" BETWEEN ? AND ?[0m [["date", "2020-01-01"], ["date", "2020-01-31"]]
|
86
|
+
|
87
|
+
[1m[36mIncome Load (0.2ms)[0m [1m[34mSELECT "incomes".* FROM "incomes" WHERE "incomes"."date" BETWEEN ? AND ? ORDER BY "incomes"."date" DESC[0m [["date", "2020-01-01"], ["date", "2020-01-31"]]
|
88
|
+
|
89
|
+
[1m[35m (0.2ms)[0m [1m[34mSELECT SUM("expenses"."price") FROM "expenses" WHERE "expenses"."date" BETWEEN ? AND ?[0m [["date", "2020-01-01"], ["date", "2020-01-31"]]
|
90
|
+
|
91
|
+
[1m[36mExpense Load (0.2ms)[0m [1m[34mSELECT "expenses".* FROM "expenses" WHERE "expenses"."date" BETWEEN ? AND ? ORDER BY "expenses"."date" DESC[0m [["date", "2020-01-01"], ["date", "2020-01-31"]]
|
92
|
+
|
93
|
+
Rendered static_pages/home.html.erb within layouts/application (10.3ms)
|
94
|
+
|
95
|
+
Rendered layouts/_header.html.erb (1.1ms)
|
96
|
+
|
97
|
+
Completed 200 OK in 72ms (Views: 30.6ms | ActiveRecord: 1.6ms)
|
98
|
+
|
99
|
+
Started GET "/assets/tempusdominus-bootstrap-4.css" for 127.0.0.1 at 2020-01-29 15:45:42 +0900
|
100
|
+
|
101
|
+
Started GET "/incomes/new" for 127.0.0.1 at 2020-01-29 15:45:44 +0900
|
102
|
+
|
103
|
+
Processing by IncomesController#new as HTML
|
104
|
+
|
105
|
+
Rendering incomes/new.html.erb within layouts/application
|
106
|
+
|
107
|
+
Rendered incomes/new.html.erb within layouts/application (533.6ms)
|
108
|
+
|
109
|
+
Rendered layouts/_header.html.erb (0.4ms)
|
110
|
+
|
111
|
+
Completed 200 OK in 665ms (Views: 553.6ms | ActiveRecord: 0.5ms)
|
112
|
+
|
113
|
+
[1m[35m (0.1ms)[0m [1m[31mrollback transaction[0m
|
114
|
+
|
115
|
+
[1m[35m (0.1ms)[0m [1m[36mbegin transaction[0m
|
116
|
+
|
117
|
+
[1m[35m (0.1ms)[0m [1m[31mrollback transaction[0m
|
118
|
+
|
119
|
+
[1m[35m (0.1ms)[0m [1m[36mbegin transaction[0m
|
120
|
+
|
121
|
+
[1m[35m (0.1ms)[0m [1m[31mrollback transaction[0m
|
122
|
+
|
123
|
+
|
124
|
+
|
125
|
+
```
|
126
|
+
|
127
|
+
|
74
128
|
|
75
129
|
> expected to find text
|
76
130
|
|
4
tairoeuteisei
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
System Spec click_onでリンクを押したはずがページ遷移に失敗する
|
test
CHANGED
File without changes
|
3
テスト名変更
test
CHANGED
File without changes
|
test
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
|
5
5
|
|
6
6
|
|
7
|
-
```
|
7
|
+
```IncomesSpec
|
8
8
|
|
9
9
|
require 'rails_helper'
|
10
10
|
|
2
コードの追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -6,31 +6,35 @@
|
|
6
6
|
|
7
7
|
```TestCode
|
8
8
|
|
9
|
+
require 'rails_helper'
|
10
|
+
|
11
|
+
|
12
|
+
|
13
|
+
RSpec.describe 'Incomes', type: :system do
|
14
|
+
|
15
|
+
|
16
|
+
|
9
|
-
it "incomeの新規登録" do
|
17
|
+
it "incomeの新規登録" do
|
10
|
-
|
18
|
+
|
11
|
-
# トップページへアクセス
|
19
|
+
# トップページへアクセス
|
12
|
-
|
20
|
+
|
13
|
-
visit root_path
|
21
|
+
visit root_path
|
14
|
-
|
22
|
+
|
15
|
-
#収入を記録ボタンを押す
|
23
|
+
#収入を記録ボタンを押す
|
16
|
-
|
24
|
+
|
17
|
-
expect(page).to have_content '収入を記録'
|
25
|
+
expect(page).to have_content '収入を記録'
|
18
|
-
|
26
|
+
|
19
|
-
click_
|
27
|
+
click_link '収入を記録'
|
20
|
-
|
28
|
+
|
21
|
-
#値を全て入力せずCreate Incomeボタンを押す
|
29
|
+
#値を全て入力せずCreate Incomeボタンを押す
|
22
|
-
|
30
|
+
|
23
|
-
expect(page).to have_content 'Create Income'
|
31
|
+
expect(page).to have_content 'Create Income'
|
24
|
-
|
32
|
+
|
25
|
-
click_button 'Create Income'
|
33
|
+
click_button 'Create Income'
|
26
|
-
|
34
|
+
|
27
|
-
#income/newページをrender
|
35
|
+
#income/newページをrender
|
28
|
-
|
36
|
+
|
29
|
-
visit current_path
|
37
|
+
visit current_path
|
30
|
-
|
31
|
-
#値を全て入力してCreate Incomeボタンを押す
|
32
|
-
|
33
|
-
|
34
38
|
|
35
39
|
〜略〜
|
36
40
|
|
1
タイトル変更
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
現在Railsで家計簿アプリを作っており、
|
2
2
|
|
3
|
-
|
3
|
+
System Specで以下のようにテストを書いています。
|
4
4
|
|
5
5
|
|
6
6
|
|