go - 如何使用 Ginkgo 和 Gomega 匹配私有结构类型?
问题描述
假设我有一个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
私有结构。那么如何验证返回的类型是预期的类型呢?
解决方案
推荐阅读
- python - Kivy Image Widget - 模块对象不可调用
- python - 安装 Setuptools-scm Pypi 时出现错误为“ValueError:Zip 不支持 1980 年之前的时间戳”
- php - Symfony Doctrine 两个用于不同目的的键,一个 AUTO_INCREMENT
- mapbox - 检查 MapBOX 的多边形/边界中是否加载了所有图块/特征
- java - 将 OpenAPI 2.0 文件的上传按钮添加为 Octet-Stream
- node.js - 为什么现有模型中未应用 Mongoose 默认值?
- symfony - 由于不是字符串,Symfony 验证 DateTime 失败?
- postgresql - ST_MakeEnvelope 与谷歌地图坐标问题
- html - 尝试从下拉列表中选择第二个选项时出现错误“java.lang.IndexOutOfBoundsException:索引:1,大小:1”
- ios - Swift - 从另一个 ViewController 访问数组