sqlmock
in でテストを書いていますgo
。行のリスト (例: ) と、両方の引数として使用したいmyRows
2 つの異なるステートメントがあります。SELECT
myRows
WillReturnRows
myRows := sqlmock.NewRows([]string{"my_column"}).AddRow(1)
mock.ExpectQuery(firstQuery).WillReturnRows(myRows)
mock.ExpectQuery(secondQuery).WillReturnRows(myRows)
最初に使用すると、結果としてWillReturnRows
返さ1
れます。ただし、2 番目の使用法では、結果として返される行はありません。つまり、空の行が返されます。myRows
消費されたかどうかを確認するために、最初の呼び出しの前後を印刷しました。オブジェクトに変化はありませんでした:
Rows Before: &{[my_column] [[1]] 0 map[] <nil>}
Rows After: &{[my_column] [[1]] 0 map[] <nil>}
編集1:
次のコードを使用しましたが、動作します。これは、両方のクエリが次を返すことを意味し1
ます。
myRows1 := sqlmock.NewRows([]string{"my_column"}).AddRow(1)
myRows2 := sqlmock.NewRows([]string{"my_column"}).AddRow(1)
mock.ExpectQuery(firstQuery).WillReturnRows(myRows1)
mock.ExpectQuery(secondQuery).WillReturnRows(myRows2)