Как смоделировать слой базы данных в Голанге, используя testify / mock - PullRequest
0 голосов
/ 14 февраля 2019

Я пытаюсь запустить модульное тестирование на сервере и использую «github.com/stretchr/testify/mock» для проверки уровня базы данных.Размещение всего кода здесь сделает его очень запутанным, поэтому я создал небольшой проект, который даст представление о структуре моего кода и о том, чего я на самом деле пытаюсь достичь "https://github.com/utkarsh17ife/goMockPractice". Вы можете взять этот код и запустить" go test. / ... "(Не уверен, что указание ссылки на github - это правильная вещь, но я чувствую, что это облегчит задачу)

Структура сервера имеет поле db, которое имеет тип interface, поэтому когдамы создаем нормальный сервер, которому назначена БД с реальной базой данных, но при тестировании она назначается с фиктивной базой данных. Но проблема в том, что я не могу сделать следующее на БД

srv.db.On("Insert", "some data").Return(true)
srv.db.AssertExpectations(t)

в качестве интерфейса БДне имеет полей «Вкл» и «AssertExpectations».

Похоже, это не способ реализации насмешек, пожалуйста, дайте мне знать правильный способ проверки этого.

1 Ответ

0 голосов
/ 14 февраля 2019

Вы можете добавить любые функции, которые вы хотите, к вашей фиктивной структуре.Единственным ограничением является то, что он должен реализовывать как минимум интерфейс DbStore.Любые дополнительные функции можно добавить, если они вам нужны для ваших тестов.

...