gpt4 book ai didi

testing - golang TestMain() 函数设置测试无法访问的变量

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

我有以下 TestMain 函数:

func TestMain(m *testing.M) {
db := "[working_db_connection]"
dbInstance, _ := InitializeRepo(db, 2)
runTests := m.Run()
os.Exit(runTests)
}

和下面的示例测试

func TestSomeFeature(t *testing.T) {
fmt.Println(dbInstance)
}

函数 TestSomeFeature 确实运行,但表示 dbInstance 未定义。为什么这不能访问变量?从示例中,我看到使用此语法访问 TestMain 中的变量 et。

最佳答案

dbInstanceTestMain 的局部变量,它不存在于TestSomeFeature 函数的生命周期中。由于这个原因,测试套件告诉你 dbInstance 是未定义的。
在TestMain外定义变量为全局变量,然后在TestMain中实例化该变量

var DbInstance MyVariableRepoType

func TestMain(m *testing.M) {
db := "[working_db_connection]"
DbInstance, _ = InitializeRepo(db, 2)
runTests := m.Run()
os.Exit(runTests)
}

关于testing - golang TestMain() 函数设置测试无法访问的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42395897/

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