gpt4 book ai didi

go - 无法访问同一个包中的私有(private)方法进行测试

转载 作者:行者123 更新时间:2023-11-28 20:34:39 24 4
gpt4 key购买 nike

我在同一个包中有 2 个文件。

# my_package1/my_file1.go

func myFunc1() {
//....
}

# my_package1/my_file1_test.go

type MyPackageSuite struct {
suite.Suite
}

func (s *MyPackageSuite) MyTest1() {
//...............

res1 := myFunc1()

//...............
}

我运行一个测试 go test my_package1/my_file1_test.go -v 并返回 undefined: myFunc1

但它们在同一个包中。为什么会出错?如何解决?将方法公开不是我想要的。

更新1:

$ ls webhook
doc.go webhook.go webhook_test.go

然后

$ go test webhook
can't load package: package webhook: malformed module path "webhook": missing dot in first path element


$ go test webhook/webhook
can't load package: package webhook/webhook: malformed module path "webhook/webhook": missing dot in first path element

$ go test webhook/webhook.go
? command-line-arguments [no test files]


$ go test webhook/webhook_test.go
# command-line-arguments [command-line-arguments.test]
webhook/webhook_test.go: undefined: myFunc1
FAIL command-line-arguments [build failed]
FAIL

最佳答案

尝试go test ./my_package1强制编译所有包。
或者至少先go build

想法是确保在执行测试文件之前编译了 myFunc1()


格式错误的模块路径”“第一个路径元素中缺少点”建议 go mod file is missing :

cd /path/to/project
go mod init project
go test ./webhook

关于go - 无法访问同一个包中的私有(private)方法进行测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59150861/

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