撰写 go 架构单元测试的绝佳对策:应用自动化测试框架(testing 包)防止依赖感,应用模拟插口撰写防护检测,避免检测相互作用应用测试表机构及管理测试报告
Go 框架中单元测试的绝佳对策
单元测试是软件开发中不可或缺的一部分,Go 也是如此。本文将讨论在Go 框架中撰写单元测试的绝佳对策,并通过实战案例 开展演试。
应用自动化测试框架Go 带来了testing 包,它包含了一系列用以撰写和运行单元测试的功效。这个功能使您可以:
界定功能测试肯定预期成果运作并收集检测结果实战案例 :
下面是一个应用testing 包撰写简易单元测试的实例:
import(
"testing"
)
funcTestAdd(ttesting.T){
got:=Add(1,2)
want:=3
ifgot!=want{
t.Errorf("Add(1,2)=%d,want%d",got,want)
}
}
防止依赖感单元测试应尽量少地依靠别的代码和依赖项。这有利于保证检测结果是可靠的,并防止隐藏难题。
实战案例 :
以下是怎样避免在单元测试中引入外界依赖项:
//错误实例:取决于外界数据库
func TestCreateUser(t testing.T) {
db := GetDatabase()
_, err := CreateUser(db, "username", "password")
}
// 恰当实例:应用模拟插口
type DatabaseInterface interface {
AddUser(username, password string) (int, error)
}
func TestCreateUser(t testing.T) {
dbMock := &DatabaseMock{}
_, err := CreateUser(dbMock, "username", "password")
}
撰写防护检测每个单元测试都应独立地运行,不受别的检测的影响。这可以避免出现偶然的检测失败,并使调节更容易。
实战案例 :
下边是怎样撰写防护检测:
//错误实例:分享全局变量
var globalUser User
func TestCreateUser(t testing.T) {
CreateUser(globalUser)
}
// 恰当实例:为每个检测建立独立的案例
func TestCreateUser(t testing.T) {
user := &User{}
CreateUser(user)
}
应用测试表测试表能够帮助你机构及管理测试报告。这能使撰写与维护单元测试更容易。
实战案例 :
下边是如何在testing 包中应用测试表:
import(
"testing/quick"
)
funcTestAdd(ttesting.T){
t.Run("positivenumbers",func(ttesting.T){
f:=func(a,bint)bool{
returnAdd(a,b)==a+b
}
iferr:=quick.Check(f,nil);err!=nil{
t.Error(err)
}
})
}
根据遵照这种最好对策,您可以撰写可维护且可靠的单元测试,进而повысить品质并提高Go 应用程序的信心。
以上就是golang框架中单元测试的绝佳对策有什么?的详细内容,大量请关注其他类似文章!