猿问

表驱动的文件创建测试

我从@volker得到了一个有关表驱动测试的示例,如下所示,但是目前我错过了我应该在真实测试中放入的内容,该测试使用的是字节,目前我不确定要在args和中放入什么expected []byte,例如,我想检查一下在文件中存在2 new line然后application输入,我该如何做而无需创建真实文件并对其进行解析?


type Models struct {

    name        string

    vtype       string

    contentType string

}


func setFile(file io.Writer, appStr Models) {

    fmt.Fprint(file, "1.0")


    fmt.Fprint(file, "Created-By: application generation process")

    for _, mod := range appStr.Modules {

        fmt.Fprint(file, "\n")

        fmt.Fprint(file, "\n")

        fmt.Fprint(file,  appStr.vtype) //"userApp"

        fmt.Fprint(file, "\n")

        fmt.Fprint(file, appStr.name) //"applicationValue"

        fmt.Fprint(file, "\n")

        fmt.Fprint(file, appStr.contentType)//"ContentType"

    }

}


func Test_setFile(t *testing.T) {

    type args struct {

        appStr models.App

    }

    var tests []struct {

        name string

        args args

        expected []byte

   }

    for _, tt := range tests {

        t.Run(tt.name, func(t *testing.T) {

            b := &bytes.Buffer{}

            setFile(b, tt.args.AppStr)

            if !bytes.Equal(b.Bytes(), tt.expected) {

                t.Error("somewhat bad happen")

            }

        })

    }

}

我阅读并理解了以下示例,但不了解字节和文件 https://medium.com/@virup/how-to-write-concise-tests-table-driven-tests-ed672c502ae4


开心每一天1111
浏览 229回答 1
1回答
随时随地看视频慕课网APP

相关分类

Go
我要回答