目录
CSV 的 go 单元测试失败
Feb 06, 2024 am 08:42 AM问题内容
我想将 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 }
登录后复制
测试文件:
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
登录后复制
看起来测试输出正是我所要求的?谁能帮我找出我做错了什么?
正确答案
要捕获错误,请在测试代码中添加此检查。
if len(got) != len(tt.want) { t.Errorf("GenerateCSV() string len = %v, want length %v", len(got), len(tt.want)) return }
登录后复制
原因:当您使用w.flush写入记录时,它会添加一个新行。
以上是CSV 的 go 单元测试失败的详细内容。更多信息请关注PHP中文网其他相关文章!
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门文章
仓库:如何复兴队友
3 周前
By 尊渡假赌尊渡假赌尊渡假赌
击败分裂小说需要多长时间?
3 周前
By DDD
R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 周前
By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
3 周前
By 尊渡假赌尊渡假赌尊渡假赌
公众号网页更新缓存难题:如何避免版本更新后旧缓存影响用户体验?
3 周前
By 王林

热门文章
仓库:如何复兴队友
3 周前
By 尊渡假赌尊渡假赌尊渡假赌
击败分裂小说需要多长时间?
3 周前
By DDD
R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 周前
By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
3 周前
By 尊渡假赌尊渡假赌尊渡假赌
公众号网页更新缓存难题:如何避免版本更新后旧缓存影响用户体验?
3 周前
By 王林

热门文章标签

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)