Как сопоставить закрытые типы структур с помощью Ginkgo и Gomega? - PullRequest
0 голосов
/ 16 апреля 2019

Предположим, что у меня есть функция с именем GoLang GetQueue и в зависимости от конфигурации она будет возвращать различные типы реализаций очереди.

func GetQueue(config string) *service.Queue {
switch(config):
case "A":
  return &QueueA.NewQueue{...}
case "B":
  return &QueueB.NewQueue{...}
...
}

service.Queue - это интерфейс. И QueueA, и QueueB являются реализациями для этого интерфейса. QueueA.go выглядит так:

type service struct {
...
}

function NewService() *service.Queue {
  return &service{}
}

Я хотел бы написать модульный тест для функции GetQueue (которая определена вне пакета service), и я хотел бы убедиться, что возвращаемые типы соответствуют ожидаемым. Тем не менее, QueueA.sevice и QueueB.service являются частными структурами. Так как я могу проверить, что возвращаемые типы являются ожидаемыми?

...