回答編集履歴
1
#2 TestUpdateUser() との比較から
test
CHANGED
@@ -1,6 +1,5 @@
|
|
1
|
-
|
1
|
+
## \#1
|
2
2
|
|
3
|
-
---
|
4
3
|
ご質問のエラーと同じと思われる報告が上がっています:
|
5
4
|
* [GitHub: DATA-DOG/go-sqlmock#118](https://github.com/DATA-DOG/go-sqlmock/issues/118)
|
6
5
|
|
@@ -8,3 +7,20 @@
|
|
8
7
|
|
9
8
|
現在ご提示のコードには`UPDATE`文の実行 (`Update()`) しか見当たりませんが、ユーザリポジトリを作成する際に`INSERT`文の実行 (`Save()`や`Create()`) が行われているのではないかと考えます。
|
10
9
|
|
10
|
+
## \#2
|
11
|
+
|
12
|
+
`TestUpdateUser()`は期待通り動作しているとのことですが、
|
13
|
+
```
|
14
|
+
func TestUpdateUser(t *testing.T) {
|
15
|
+
...
|
16
|
+
mock.ExpectBegin()
|
17
|
+
mock.ExpectQuery(regexp.QuoteMeta(`UPDATE "users" SET "email"=$1,"img_path"=$2,"updated_at"=$3 WHERE id=$4 AND "users"."deleted_at" IS NULL AND "id" = $5 RETURNING *`)).
|
18
|
+
WithArgs(user.Email, user.ImgPath, AnyTime{}, user.ID, user.ID).
|
19
|
+
WillReturnRows(sqlmock.NewRows([]string{"email"}).AddRow(user.Email))
|
20
|
+
mock.ExpectCommit()
|
21
|
+
...
|
22
|
+
```
|
23
|
+
となっており、`UPDATE`文に対して`ExpectQuery()`を用いておられます。
|
24
|
+
|
25
|
+
ということで、\#1で述べたことは`INSERT`文だけでなく`UPDATE`文にもあてはまるのではないでしょうか。つまり、問題の箇所でも`ExpectExec()`の代わりに`ExpectQuery()`を使えば問題は解消するように思われます。
|
26
|
+
|