gonkey icon indicating copy to clipboard operation
gonkey copied to clipboard

Поддержка работы с Redis или его мокирование

Open keyclaim opened this issue 3 years ago • 1 comments

В случае если это будет мок предлагается использовать https://github.com/rafaeljusto/redigomock

Предполагается, что на уровне проекта при необходимости будет инициализировано замоканное соединение redigomock.NewConn()

Можно расширить параметры запуска тестов этим соединением:

runner.RunWithTesting(t, &runner.RunWithTestingParams{
 ..
 RedisMock:   r
})

Выполнять очистку конфигурации мока после каждого теста через redigomock.Clear() Добавить возможность описания конфигурации мока через yaml-сценарий по соответствующим нотациям нотациям. Например

redisMock:
 command:
  GETPERSON:
   calls: 1
   args: person:1
   responseOk: >
    {
        "name": "Mr. Johson",
        "age":  "42",
      }
  GETADDRESS:
   calls: 2
   args: person:2
   responseError: Simulated error!

После выполнения теста мок должен возвращать список ошибок: в каких ручках количество вызовов не соответствует ожидаемому (по аналогии с func (m *Mocks) EndRunningContext() []error)

Альтернативой может быть интерфейс позволяющий загружать данные в Redis и выполнять очистку, а также checker позволяющий проверить наличие данных.

keyclaim avatar Apr 20 '22 21:04 keyclaim

В #176 добавлена возможность наполнения redis из фикстур.

fetinin avatar Feb 01 '23 20:02 fetinin