【发布时间】:2021-07-29 08:52:19
【问题描述】:
我正在为 golang 中的包编写单元测试。我需要创建一个私有字段类型的变量,该变量驻留在不同的包中,以将其作为参数传递给我正在测试的函数。
包:go/abc/a.go
type newType int
包:go/edf/b.go
import "go/abc"
func init(abc newType){
// ommitted for brevity
}
现在我正在为 b.go say 编写单元测试
包:go/edf/b_test.go
func TestInit(){
// Now I need to create a variable of private field type newType in abc package
// for passing as parameter to the init function....
}
是否可以在 golang 中使用 reflect 或 packages 包来实现这一点
【问题讨论】:
-
请注意,在 Go 中,顶级
init函数保留用于预执行初始化。并且要求它们的类型是func()(没有输入参数,没有输出参数),因此即使您的func init(abc newType) {可以访问newType,它也不会编译。
标签: go