我最近一直在尝试GoMock
,这是Go语言官方创建者支持的测试模拟框架。我想知道把这些模拟文件放在哪里最合理。
我目前的目录结构如下。Go项目应该是这样构建的吗?
appname
|-- gateways
|-- gateway1.go
|-- gateway1_test.go
|-- gateway2.go
|-- gateway2_test.go
|-- mocks
|-- gateway1.go
|-- gateway2.go
这一点受到了本·Json的演讲的影响。
2条答案
按热度按时间hxzsmxv21#
我倾向于遵循这篇文章也由本Json
Link to article
一般来说,这种为共享模拟创建一个包的方法是很好的。这里值得指出的一点是,如果您没有在
gateways
包之外定义模型,那么您可能会得到一个导入周期。gateways
定义模型mocks
导入gateways.Model
gateways
导入mocks
进行测试有两种方法可以解决这个问题;第一种方法是将模型移到
domain
中,这是gateways
之外的一个根包(参见文章中的示例)。或者在测试文件中使用gateways_test
作为包,只测试gateways
包的公共接口。euoag5mw2#
我把它和我的接口放在同一个包里,在我看来,这是一个好地方,因为它和继承的结构体是分开的。我认为你的项目结构不好,我宁愿在下面这样做(它基于DDD架构)
范例