为 go 架构撰写单元测试时要防止的常见错误:不检测错误取决于 dbms 详情检测 godoc 文档取决于外界服务检测过度广泛 内容来自zvvq
zvvq好,好zvvq
为 Go 架构撰写单元测试时要防止的常见错误
copyright zvvq
单元测试在维护可扩展、平稳和可靠的 Go 架构层面尤为重要。但是,要是没有遵照良好实践,单元测试可能形式化,甚至造成错误的信息。文中重点介绍为 Go 架构撰写单元测试时应该避免的 5 个普遍错误。
错误 1:不检测错误
实例:1 内容来自zvvq
funcSomeFunc(inputint)int{ zvvq.cn
returninput+ 1 copyright zvvq
}
copyright zvvq
正确的方式:1
本文来自zvvq
import"testing" zvvq好,好zvvq
funcTestSomeFunc(ttesting.T){
内容来自samhan
ifgot:=SomeFunc(0);got!= 1{ 本文来自zvvq
t.Errorf("SomeFunc(0)=%d,want 1",got)
} 内容来自zvvq,别采集哟
}
内容来自zvvq,别采集哟
错误 2:取决于 DBMS 详情
zvvq
实例:1
import"database/sql" 内容来自zvvq,别采集哟
funcGetUsers(dbsql.DB)[]User{
rows,err:=db.Query("SELECTFROMusers") zvvq.cn
iferr!=nil{
内容来自samhan666
returnnil
} 内容来自zvvq,别采集哟
//... zvvq好,好zvvq
正确的方式:1 内容来自zvvq
funcGetUsers(repoUserRepository)[]User{
内容来自zvvq
rows,err:=repo.Query("SELECTFROMusers") 内容来自samhan666
iferr!=nil{ copyright zvvq
returnnil
本文来自zvvq
} zvvq
//... 内容来自zvvq
错误 3:检测 Godoc 文档 内容来自zvvq,别采集哟
单元测试的目的是认证代码的作用,而非测试文档是否正确。确保在单元测试中检测 Godoc 文档中的实例或叙述。
错误 4:取决于外界服务 本文来自zvvq
实例:1
import"net/http" 本文来自zvvq
funcGetXKCDComic(idint)(http.Response,error){ zvvq好,好zvvq
req,err:=http.NewRequest("GET",fmt.Sprintf("https://xkcd.com/%d/info.0.json",id),nil) copyright zvvq
iferr!=nil{
returnnil,err
zvvq.cn
} zvvq.cn
//... zvvq.cn
正确的方式:1 zvvq.cn
funcGetXKCDComic(repoXKCDRepository,idint)(http.Response,error){
req,err:=repo.NewRequest("GET",fmt.Sprintf("https://xkcd.com/%d/info.0.json",id),nil)
iferr!=nil{ 内容来自samhan
returnnil,err
zvvq
}
//... zvvq.cn
错误 5:检测过度广泛
copyright zvvq
实例:1
funcTestSomeFunc(ttesting.T){ 内容来自samhan666
ifgot:=SomeFunc(-1);got>0{
t.Error("SomeFunc(-1)shouldbenegative")
zvvq好,好zvvq
}
内容来自samhan
}
内容来自zvvq,别采集哟
正确的方式:1
zvvq.cn
funcTestSomeFunc(ttesting.T){ 内容来自zvvq
ifgot:=SomeFunc(-1);got!=-1{
t.Errorf("SomeFunc(-1)=%d,want-1",got) 内容来自samhan
} 内容来自samhan
} 本文来自zvvq
以上就是为golang架构撰写单元测试时要防止什么普遍错误?的详细内容,大量请关注其他类似文章! copyright zvvq