go 架构能够提升测试覆盖率:应用 testing.t 提供的方式(fail()、error()、fatalf() 等)撰写全面的检测。运作 go-cover 生成报告,表明每个文件的测试覆盖率和未遮盖代码行。
Go 框架的新特性,怎样提高测试覆盖率
在 Go 语言中,测试覆盖率是一个重要的指标,它表示代码库中有多少编码被测试覆盖。测试覆盖率越大,大家就越有信心代码是准确的。
在 Go 中,有一些架构能让提升测试覆盖率变得更加容易。其中一个架构是 testing.T,它提供了各种用以撰写测试的方法。另一个架构是 go-cover,它能够生成一个汇报,表明代码库中什么编码被测试覆盖,什么没有。
应用 testing.T提升测试覆盖率
testing.T提供了许多有用的方法,能够帮助提高测试覆盖率。这种方法包括:
Fail():当检测失败时应用此方法 Error():当检测碰到错误时应用此方法 Fatalf():当检测碰到致命错误时进行此方法 Skip():当检测被跳落伍应用此方法 Skipf():当检测因特殊原因被跳落伍应用此方法根据使用这个方法,我们能更轻松地撰写全面的检测,以确保代码库中所有编码都被遮盖。
应用 go-cover 提升测试覆盖率
go-cover是一个工具,可以生成代码库的测试覆盖率汇报。要使用此工具,只需在cmd中运行下列指令:
go test-coverprofile=coverage.out
这将生成一个名叫 coverage.out 文件,其中包括测试覆盖率汇报。汇报将显示以下信息:
总测试覆盖率遮盖百分比的每个文档没被遮盖代码行根据使用此报告,大家能够轻松识别并修补代码库中测试覆盖率较低的部分。
实战案例
下列是一个实战案例 ,演试怎么使用 testing.T和 go-cover 提升测试覆盖率:
import(
"testing"
)
funcAdd(a,bint)int{
returna+b
}
funcTestAdd(ttesting.T){
tests:=[]struct{
a,b,expectedint
}{
{1,2,3},
{3,4,7},
{-1,-2,-3},
}
for_,test:=rangetests{
actual:=Add(test.a,test.b)
ifactual!=test.expected{
t.Errorf("Add(%d,%d)=%d,expected%d",test.a,test.b,actual,test.expected)
}
}
}
funcmain(){
gotest-coverprofile=coverage.out
}
在上面的示例中,我们使用 testing.T写了一个功能测试,为 Add 函数编写了三个检测。大家还使用了 go-cover 来生成一个测试覆盖率汇报,该报告将显示什么编码被测试覆盖了,什么没有。
以上就是golang框架的新特性怎样提高测试覆盖率?的详细内容,大量请关注其他类似文章!