哪个目录放置模拟?

hli*_*117 8 testing mocking go gomock

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

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

appname
|-- gateways
    |-- gateway1.go
    |-- gateway1_test.go
    |-- gateway2.go
    |-- gateway2_test.go
    |-- mocks
        |-- gateway1.go
        |-- gateway2.go
Run Code Online (Sandbox Code Playgroud)

这稍微受到了Ben Johnson在这里演讲的影响。

Zak*_*Zak 5

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

文章链接

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

  1. gateways定义模型
  2. mocks进口gateways.Model
  3. gateways进口mocks测试

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