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

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

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

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

Поскольку в интерфейсе БД нет полей "Вкл" и "AssertExpectations".

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

1 ответ

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

Другие вопросы по тегам