我正在尝试为结构构造函数编写单元测试,如果在 file.Open 期间发生错误,它也可能返回 nil。我不知道如何使用标志测试/模拟文件错误: os.O_RDWR|os.O_CREATE|os.O_APPEND
我尝试检查测试中的 nil 值,但失败了。
构造函数:
type App struct {
someField string
log *log.Logger
}
func New() *App {
app := &App{}
f, err := os.OpenFile("info.log", os.O_RDWR|os.O_CREATE|os.O_APPEND, 0666)
if err != nil {
fmt.Printf("error opening file: %v", err)
return nil
}
mw := io.MultiWriter(os.Stdout, f)
l = log.New(mw, "APP", log.Ldate|log.LstdFlags|log.Lshortfile)
app.log = l
return app
}
并测试构造函数:
func TestNew(t *testing.T) {
var a App
a = New()
// doesn't cover
if a == nil {
t.Fatal("Error opening file")
}
}
我希望覆盖错误!= nil,它在覆盖范围内是红色的:
f, err := os.OpenFile("info.log", os.O_RDWR|os.O_CREATE|os.O_APPEND, 0666)
if err != nil {
fmt.Printf("error opening file: %v", err)
return nil
}
繁华开满天机
FFIVE
慕姐8265434
相关分类