質問編集履歴

2

追加

2019/09/07 09:32

投稿

jpskgc
jpskgc

スコア19

test CHANGED
File without changes
test CHANGED
@@ -22,9 +22,9 @@
22
22
 
23
23
  --- FAIL: TestDaoSuite/TestDeleteArticleDao (0.00s)
24
24
 
25
- dao_test.go:227:
25
+ dao_test.go:221:
26
-
26
+
27
- Error Trace: dao_test.go:227
27
+ Error Trace: dao_test.go:221
28
28
 
29
29
  suite.go:122
30
30
 
@@ -34,11 +34,11 @@
34
34
 
35
35
  signal_unix.go:390
36
36
 
37
- s3.go:71
37
+ s3.go:66
38
-
38
+
39
- dao.go:64
39
+ dao.go:74
40
-
40
+
41
- dao_test.go:162
41
+ dao_test.go:156
42
42
 
43
43
  Error: Received unexpected error:
44
44
 
@@ -297,3 +297,17 @@
297
297
  ```
298
298
 
299
299
  以上お手数ですが、ご教授いただけると幸いです。よろしくお願いいたします。
300
+
301
+
302
+
303
+ ### 追記(全ソース版)
304
+
305
+ 上記3ファイルの全ソースを追記いたします。
306
+
307
+ 文字数制限に引っかかるため、コードは以下のgithubをご参照下さい。(ブランチ:`fix-test-dao`)
308
+
309
+ [https://github.com/jpskgc/article/tree/fix-test-dao](https://github.com/jpskgc/article/tree/fix-test-dao)
310
+
311
+
312
+
313
+ 以上よろしくお願いいたいます。

1

修正

2019/09/07 09:32

投稿

jpskgc
jpskgc

スコア19

test CHANGED
File without changes
test CHANGED
@@ -14,7 +14,7 @@
14
14
 
15
15
  `dao_test.go`のテストを実行すると以下のエラーが発生して、テストがfailします。
16
16
 
17
- ```
17
+ ```command
18
18
 
19
19
  $ go test -v
20
20
 
@@ -22,14 +22,32 @@
22
22
 
23
23
  --- FAIL: TestDaoSuite/TestDeleteArticleDao (0.00s)
24
24
 
25
+ dao_test.go:227:
26
+
27
+ Error Trace: dao_test.go:227
28
+
29
+ suite.go:122
30
+
31
+ panic.go:522
32
+
33
+ panic.go:82
34
+
35
+ signal_unix.go:390
36
+
37
+ s3.go:71
38
+
39
+ dao.go:64
40
+
41
+ dao_test.go:162
42
+
43
+ Error: Received unexpected error:
44
+
45
+ there is a remaining expectation which was not matched: ExpectedBegin => expecting database transaction Begin
46
+
47
+ Test: TestDaoSuite/TestDeleteArticleDao
48
+
25
49
  suite.go:61: test panicked: runtime error: invalid memory address or nil pointer dereference
26
50
 
27
- FAIL
28
-
29
- exit status 1
30
-
31
- FAIL article/api/dao 0.077s
32
-
33
51
  ```
34
52
 
35
53
 
@@ -140,7 +158,7 @@
140
158
 
141
159
  // DeleteArticleDaoは別パッケージのメソッドのため、呼び出しの際に落ちてしまいます。
142
160
 
143
- s.dao.DeleteArticleDao(context)
161
+ s.dao.DeleteArticleDao("1")
144
162
 
145
163
  }
146
164
 
@@ -188,15 +206,15 @@
188
206
 
189
207
 
190
208
 
191
- func (d *Dao) DeleteArticleDao(c *gin.Context) {
209
+ func (d *Dao) DeleteArticleDao(id string) {
192
-
210
+
193
- //imageNamesの生成
211
+ //imageNameの生成
194
212
 
195
213
 
196
214
 
197
215
  //ここで、別パッケージのメソッドを呼び出しています。ここでテストが落ちます。
198
216
 
199
- d.s3.DeleteS3Image(imageNames)
217
+ d.s3.DeleteS3Image(imageName)
200
218
 
201
219
 
202
220
 
@@ -230,9 +248,7 @@
230
248
 
231
249
  type DaoInterface interface {
232
250
 
233
- PostImageToS3(c *gin.Context) []util.ImageName
234
-
235
- DeleteS3Image(imageNames []util.ImageName)
251
+ DeleteS3Image(imageName util.ImageName) error
236
252
 
237
253
  }
238
254
 
@@ -250,7 +266,7 @@
250
266
 
251
267
  //このメソッドがうまく呼び出せずに落ちています。おそらくモックにすべきなのですが方法がわかっていません。
252
268
 
253
- func (objs *S3) DeleteS3Image(imageNames []util.ImageName) {
269
+ func (objs *S3) DeleteS3Image(imageName util.ImageName) error {
254
270
 
255
271
  // method
256
272