質問編集履歴

7

追記

2020/01/29 07:16

投稿

ketyan
ketyan

スコア22

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

追記

2020/01/29 07:15

投稿

ketyan
ketyan

スコア22

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

ログの追記

2020/01/29 06:49

投稿

ketyan
ketyan

スコア22

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
+  (0.2ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC
76
+
77
+  (0.1ms) begin transaction
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
+  (0.3ms) SELECT SUM("incomes"."price") FROM "incomes" WHERE "incomes"."date" BETWEEN ? AND ? [["date", "2020-01-01"], ["date", "2020-01-31"]]
86
+
87
+ Income Load (0.2ms) SELECT "incomes".* FROM "incomes" WHERE "incomes"."date" BETWEEN ? AND ? ORDER BY "incomes"."date" DESC [["date", "2020-01-01"], ["date", "2020-01-31"]]
88
+
89
+  (0.2ms) SELECT SUM("expenses"."price") FROM "expenses" WHERE "expenses"."date" BETWEEN ? AND ? [["date", "2020-01-01"], ["date", "2020-01-31"]]
90
+
91
+ Expense Load (0.2ms) SELECT "expenses".* FROM "expenses" WHERE "expenses"."date" BETWEEN ? AND ? ORDER BY "expenses"."date" DESC [["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
+  (0.1ms) rollback transaction
114
+
115
+  (0.1ms) begin transaction
116
+
117
+  (0.1ms) rollback transaction
118
+
119
+  (0.1ms) begin transaction
120
+
121
+  (0.1ms) rollback transaction
122
+
123
+
124
+
125
+ ```
126
+
127
+
74
128
 
75
129
  > expected to find text
76
130
 

4

tairoeuteisei

2020/01/29 06:47

投稿

ketyan
ketyan

スコア22

test CHANGED
@@ -1 +1 @@
1
- Request Spec click_onでリンクを押したはずがページ遷移に失敗する
1
+ System Spec click_onでリンクを押したはずがページ遷移に失敗する
test CHANGED
File without changes

3

テスト名変更

2020/01/29 06:43

投稿

ketyan
ketyan

スコア22

test CHANGED
File without changes
test CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
 
6
6
 
7
- ```TestCode
7
+ ```IncomesSpec
8
8
 
9
9
  require 'rails_helper'
10
10
 

2

コードの追加

2020/01/29 06:36

投稿

ketyan
ketyan

スコア22

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_on '収入を記録'
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

タイトル変更

2020/01/29 06:29

投稿

ketyan
ketyan

スコア22

test CHANGED
File without changes
test CHANGED
@@ -1,6 +1,6 @@
1
1
  現在Railsで家計簿アプリを作っており、
2
2
 
3
- Request Specで以下のようにテストを書いています。
3
+ System Specで以下のようにテストを書いています。
4
4
 
5
5
 
6
6