Я пишу тесты с sqlmock
в go
. У меня есть список строк (например, myRows
) и два разных оператора SELECT
, которые я хочу использовать myRows
в качестве WillReturnRows
аргумента для них обоих:
myRows := sqlmock.NewRows([]string{"my_column"}).AddRow(1)
mock.ExpectQuery(firstQuery).WillReturnRows(myRows)
mock.ExpectQuery(secondQuery).WillReturnRows(myRows)
Когда я его использую в первом WillReturnRows
возвращается 1
в качестве результата. Но во втором случае ни одна строка не возвращается как результат; Я имею в виду пустые строки возвращается. Я распечатал 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)