首页 > 解决方案 > 如何使用 Ginkgo 和 Gomega 匹配私有结构类型?

问题描述

假设我有一个GetQueue用 GoLang 调用的函数并且取决于配置,它将返回不同类型的队列实现。

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

service.Queue一个接口。两者QueueAQueueB都是这个接口的实现。QueueA.go 看起来像:

type service struct {
...
}

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

我想为该GetQueue函数(在包外部定义service)编写一个单元测试,并且我想验证返回的类型是否符合预期。但是,两者QueueA.sevice都是QueueB.service私有结构。那么如何验证返回的类型是预期的类型呢?

标签: goginkgogomega

解决方案


推荐阅读