我最近一直在试验GoMock
,这是Go语言官方创作者支持的测试模拟框架。我想知道把这些模拟文件放在哪里是最合理的地方。
我目前的目录结构如下。这是Go项目的结构吗?
appname
|-- gateways
|-- gateway1.go
|-- gateway1_test.go
|-- gateway2.go
|-- gateway2_test.go
|-- mocks
|-- gateway1.go
|-- gateway2.go
这有点受到本约翰逊的谈话here的影响。
答案 0 :(得分:0)
我也倾向于本·约翰逊(Ben Johnson)的这篇文章
通常,为您的共享模拟提供程序包的这种方法是一种很好的方法。这里需要指出的一件事是,如果不在gateways
包之外定义模型,则可能会导致导入周期。
gateways
定义模型mocks
导入gateways.Model
gateways
导入mocks
进行测试有两种方法可以解决此问题;首先是将模型移至domain
之外的根包gateways
中(有关示例,请参见文章)。或者仅通过使用gateways
作为测试文件中的软件包来测试gateways_test
软件包的公共接口。