如果未提供证书,则单元测试tls.LoadX509KeyPair将失败

时间:2019-03-07 20:23:35

标签: go tls1.2

cert, err := tls.LoadX509KeyPair(os.Getenv("CERT"), os.Getenv("KEY"))
if err != nil {
    return err
}

我想为包含此代码段的功能编写单元测试。但是,我的测试环境永远不会在os.Getenv("CERT") / os.Getenv("KEY")中包含任何内容。这使代码(tls.LoadX509KeyPair())返回错误,这使我无法测试该函数。 我应该如何模拟/修改此代码段?

1 个答案:

答案 0 :(得分:0)

这是通过为certFilekeyFile定义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?