cert, err := tls.LoadX509KeyPair(os.Getenv("CERT"), os.Getenv("KEY"))
if err != nil {
return err
}
我想为包含此代码段的功能编写单元测试。但是,我的测试环境永远不会在os.Getenv("CERT")
/ os.Getenv("KEY")
中包含任何内容。这使代码(tls.LoadX509KeyPair()
)返回错误,这使我无法测试该函数。
我应该如何模拟/修改此代码段?
答案 0 :(得分:0)
这是通过为certFile
和keyFile
定义var,然后在测试环境中覆盖它们来起作用的。
//..
var certFile = os.Getenv("CERT")
var keyFile = os.Getenv("KEY")
//...
cert, err := tls.LoadX509KeyPair(certFile, keyFile)
if err != nil {
return err
}
按照下面的链接查看如何在测试环境中覆盖变量。 In Go,how to get test environment at run time?