哪个目录要模拟



我最近一直在尝试GoMock,这是GO语言官方创建者支持的测试模拟框架。我想知道将这些模拟文件放在哪里。

我当前的目录结构如下。这是应该如何构建的GO项目吗?

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

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

我也倾向于遵循本文章

链接到文章

通常,为您的共享模型提供包裹的方法是一个很好的方法。值得注意的一件事是,如果您不在gateways软件包之外定义模型,则可以获得进口周期。

  1. gateways定义模型
  2. mocks导入gateways.Model
  3. gateways导入mocks用于测试

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

我将其放在与我的界面相同的包装中,我认为这是一个好地方,因为它与继承的结构分开,我认为您的项目结构不好,我宁愿在下面做(其基础在DDD架构上)

示例

appname
|-- gateways
    |-- gateway.go //this file contain interface and mocks 
    |-- gateway1
        |-- gateway1.go
        |-- gateway1_test.go 
    |-- gateway2
        |-- gateway2.go
        |-- gateway2_test.go 

相关内容

  • 没有找到相关文章

最新更新