哪个目录放嘲讽?

时间:2017-02-19 21:47:00

标签: testing go mocking gomock

我最近一直在试验GoMock,这是Go语言官方创作者支持的测试模拟框架。我想知道把这些模拟文件放在哪里是最合理的地方。

我目前的目录结构如下。这是Go项目的结构吗?

appname
|-- gateways
    |-- gateway1.go
    |-- gateway1_test.go
    |-- gateway2.go
    |-- gateway2_test.go
    |-- mocks
        |-- gateway1.go
        |-- gateway2.go

这有点受到本约翰逊的谈话here的影响。

1 个答案:

答案 0 :(得分:0)

我也倾向于本·约翰逊(Ben Johnson)的这篇文章

Link to article

通常,为您的共享模拟提供程序包的这种方法是一种很好的方法。这里需要指出的一件事是,如果不在gateways包之外定义模型,则可能会导致导入周期。

  1. gateways定义模型
  2. mocks导入gateways.Model
  3. gateways导入mocks进行测试

有两种方法可以解决此问题;首先是将模型移至domain之外的根包gateways中(有关示例,请参见文章)。或者仅通过使用gateways作为测试文件中的软件包来测试gateways_test软件包的公共接口。