go-sqlmock простой запрос выбора не работает - PullRequest
0 голосов
/ 01 июля 2019

У меня следующий код в главном go:

func testdb(db *sql.DB)  error {
    query := "SELECT test_col FROM test_table"
    rows, err := db.Query(query)
    if err != nil {
        return err
    }

    if rows != nil {
        log.Info("got data")
    }

    return nil
}

контрольный пример для этой функции:

db, mock, err := sqlmock.New()
if err != nil {
    t.Fatalf("an error '%s' was not expected when opening a stub database connection", err)
}
defer db.Close()

mock.ExpectBegin()
rows := sqlmock.NewRows([]string{"test_col"}).AddRow("test-col")
query := "SELECT test_col FROM test_table"
mock.ExpectQuery(query).WillReturnRows(rows).WillReturnError(nil)
mock.ExpectCommit()

err = testdb(db)
if err != nil {
    log.Error(err)
}

Я получаю эту ошибку

вызов к «SELECT test_col FROM test_table» с аргументами [], не ожидался, следующее ожидание: ExpectedBegin => ожидание транзакции базы данных Begin

Я пытался увидеть примеры из sql mock, похоже, я делаю то же самое, Четный запрос в основном методе точно такой же, как и в mock.h

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...