假设我在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
都是私有结构。那么如何确认返回的类型是预期的类型?