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

Unit Testing tls.LoadX509KeyPair fails if no certs provided

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

我想为包含这段代码的函数编写单元测试。但是,我的测试环境永远不会有os.Getenv("CERT")/os.Getenv("KEY")中的任何内容。这使得代码 (tls.LoadX509KeyPair()) return 成为一个错误,它不允许我测试函数。 我应该如何处理 mocking/modifying 这段代码?

这通过为 certFilekeyFile 定义变量然后在测试环境中覆盖它们来实现。

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

按照以下 link 了解如何覆盖测试环境中的变量。