unit-testing - 如何在go(golang)中测试未导出的(私有(private))函数?

标签 unit-testing go

我对在 go 中为“未导出(私有(private))函数”创建单元测试很感兴趣。但是,基本上很难在测试包中创建单元测试,因为我必须将它们“公开”。最终,这违背了他们私密的全部意义。关键是这些辅助函数有助于模块化,现在它们是模块化的,如果能够为它们创建单元测试而不使除测试包之外的所有人都可以使用它们,那就太好了,它们不是应该访问的函数或由测试套件或实际包本身以外的任何其他人使用。

有什么建议吗?是否可以导出到自己的包和 1 个额外的包或类似的东西?

最佳答案

在包中创建一个测试文件

library_test.go

package mypkg

func TestPrivateStruct(t *testing.T){
  pf := private{ "Private Field" }
  ....
}

library.go

package mypkg

type private struct {
  privateField string
}

go test mypkg -v 将使用您的私有(private)结构运行您的测试

关于unit-testing - 如何在go(golang)中测试未导出的(私有(private))函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24622388/

相关文章:

调用 EF Core 扩展方法的 c# 单元测试方法

java - 如何使用 Mockito 模拟默认接口(interface)方法?

go - slice 不断重新填充循环中的旧条目

go - 无法将类型 s3.Bucket 传递到 Golang 函数中

node.js - 使用 MongoDB Atlas 时,mongo-go-driver 因服务器选择超时而失败

php - 模拟静态 Eloquent 模型方法,包括 find()

c# - 我如何使用 xUnit Assert.RaisesAny?

Golang http get 请求在某些但不是所有 url 上中断

Go Dep - 与 vendor 同步 Gopkg.toml

javascript - ui.bootstrap 破坏了我的单元测试并出现意外结果错误?