gpt4 book ai didi

unit-testing - 如何在 Go 中构建 Mock 或 Stub 结构?

转载 作者:IT王子 更新时间:2023-10-29 02:37:12 24 4
gpt4 key购买 nike

假设我有一个包含多个接口(interface)的 Go 包。对于这个例子,我将重点关注 middleware.go 中定义的一个名为 Middleware 的对象:

type Middleware interface {
// some functions
}

我有一些系统的其他部分使用它,所以为了更好地帮助测试系统的这些部分,我在 mock_middleware.go 中手动创建了一个模拟实现:

type MockMiddleware struct {

}

// implementations

在没有测试的情况下构建二进制文件时,如何排除模拟类被构建到二进制文件中?我知道 middleware_test.go 将被排除在外,但我不想用该约定命名我的所有模拟,以免将实际测试与支持测试的实现混淆。

最佳答案

一种方法是使用 Build Constraints .

Go 甚至支持内置的 ignore 标签,但我不太确定它与测试/基准工具链的交互:

To keep a file from being considered for the build:

// +build ignore

关于unit-testing - 如何在 Go 中构建 Mock 或 Stub 结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51583149/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com