作者热门文章
- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我正在尝试测试以下分支:
if _, err := os.Stat(path); err != nil {
if os.IsNotExist(err) {
continue
}
return errors.File().AddDetails(err)
}
显然,如果 path
不存在,os.Stat
将抛出错误。 Reading the Golang documentation不返回有关 os.Stat
可能返回的错误的详细信息。有没有办法让 os.Stat
抛出另一种错误?
最佳答案
您可以通过传递无效的文件名导致错误,例如 IsNotExist
返回 false。
package main
import (
"fmt"
"os"
)
func main() {
_, err := os.Stat("\000x")
fmt.Println(err)
// prints:
//
// stat x: invalid argument
}
\000(ASCII: NUL)
是 unix 文件名中的无效字符。
关于unit-testing - 使 os.Stat 抛出错误,使 IsNotExist 返回 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52976701/
我不明白,为什么我不能创建一个文件夹并写入一个文件,然后再次读入它 - 在相同的函数中使用相同的路径,只是为了测试? 当我在文件上运行“go test myio_test.go”时。我明白了 myio
我正在尝试测试以下分支: if _, err := os.Stat(path); err != nil { if os.IsNotExist(err) { co
我是一名优秀的程序员,十分优秀!