5

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

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

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

这受本·约翰逊 (Ben Johnson)在这里的演讲的影响。

4

1 回答 1

3

我也倾向于关注本·约翰逊的这篇文章

链接到文章

一般来说,这种为您的共享模拟打包的方法是一种很好的方法。这里值得指出的一件事是,如果您不在gateways包之外定义模型,您可能会得到一个导入周期。

  1. gateways定义模型
  2. mocks进口gateways.Model
  3. gatewaysmocks用于测试的进口

有两种方法可以解决此问题;第一个只是将您的模型移动到domain外部的根包gateways中(参见文章示例)。gateways或者仅通过gateways_test在测试文件中用作包来测试包的公共接口。

于 2018-07-17T16:35:57.110 回答