假设我有一个GetQueue
用 GoLang 调用的函数并且取决于配置,它将返回不同类型的队列实现。
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
私有结构。那么如何验证返回的类型是预期的类型呢?