0

sqlmockin でテストを書いていますgo。行のリスト (例: ) と、両方の引数として使用したいmyRows2 つの異なるステートメントがあります。SELECTmyRowsWillReturnRows

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)
4

1 に答える 1