我想要在一个大型项目中使用CSV包,我正在从一些基本测试开始.当输出似乎与预期的输出匹配时,我想不出为什么这个单元测试失败.
好了,我们开始吧.
package csv
import (
"bytes"
"encoding/csv"
)
func GenerateCSV(records [][]string) (string, error) {
buf := bytes.Buffer{}
w := csv.NewWriter(&buf)
for _, record := range records {
if err := w.Write(record); err != nil {
// handle the err
}
}
w.Flush()
if err := w.Error(); err != nil {
// handle the error
}
return buf.String(), nil
}
TEST好了,我们开始吧.
package csv
import "testing"
func TestGenerateCSV(t *testing.T) {
records := [][]string{
{"first_name","last_name","user_name"},
}
type args struct {
records [][]string
}
tests := []struct {
name string
args args
want string
wantErr bool
}{
// TODO: Add test cases.
{"T1", args{records: records,}, "first_name,last_name,user_name", false},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
got, err := GenerateCSV(tt.args.records)
if (err != nil) != tt.wantErr {
t.Errorf("GenerateCSV() error = %v, wantErr %v", err, tt.wantErr)
return
}
if got != tt.want {
t.Errorf("GenerateCSV() = %v, want %v", got, tt.want)
}
})
}
当测试运行时,我得到以下输出:
FAIL: TestGenerateCSV
GenerateCSV() = first_name,last_name,user_name
, want first_name,last_name,user_name
看起来测试结果就是我所要求的?有人能帮我找出我做错了什么吗?