zvvq技术分享网

Go 框架测试中的异常处理最佳实践(gauge测试框架

作者:zvvq博客网
导读Go 框架测试中的异常处理最佳实践 在 Go 框架中编写测试时,异常处理至关重要,因为它能确保测试的稳定性和可读性。本文将介绍几个最佳实践,以提高 Go 框架测试中异常处理的质量

内容来自samhan666

Go 架构检测里的错误处理良好实践 内容来自samhan

在 Go 框架中撰写测试时,错误处理尤为重要,因为它能保证检测的稳定性和易读性。本文将介绍几个良好实践,以提升 Go 架构检测中错误处理的品质。 内容来自samhan

1. 应用 t.Fatal() 和 t.Error()

copyright zvvq

t.Fatal() 和 t.Error() 是两个内置函数,用以汇报检测错误。t.Fatal() 会立刻停止检测,而 t.Error() 容许检测执行。针对需要停止测试严重错误,请选择 t.Fatal();对需要纪录但允许检测执行的警告,请选择 t.Error()。

内容来自zvvq

例: zvvq.cn

func TestSomething(t testing.T) {

zvvq.cn

if err := something(); err != nil { 内容来自samhan

t.Fatal(err)

zvvq好,好zvvq

} zvvq

} 本文来自zvvq

2. 应用 want 和 have 来肯定错误 本文来自zvvq

want和 have 是 Testing Tools 包中界定的函数,用以肯定错误是否发生。使用这个函数比直接较为错误更清楚和更具易读性。 zvvq.cn

例:

内容来自zvvq

11 zvvq好,好zvvq

import( 内容来自samhan

"testing" 内容来自samhan

"errors"

内容来自samhan666

)

内容来自zvvq,别采集哟

funcTestSomething(ttesting.T){

zvvq好,好zvvq

err:=errors.New("somethingwrong")

内容来自zvvq

ifwant, have :=err,something(); want != have { 内容来自samhan666

t.Fatalf("want%v, have %v",want,have) zvvq

}

内容来自zvvq,别采集哟

}

内容来自zvvq

3. 应用 recover() 来捕捉焦虑 copyright zvvq

recover()函数用以捕获在 Goroutine 中引起的恐慌。在检测中,可以用 recover() 来检验会不会产生焦虑,或是捕捉焦虑以进行肯定。 zvvq.cn

例:

内容来自zvvq,别采集哟

func TestSomething(t testing.T) { 内容来自zvvq,别采集哟

defer func() {

内容来自samhan

if err := recover(); err != nil { zvvq

t.Errorf("unexpected panic: %v", err) 内容来自samhan666

}

copyright zvvq

}()

内容来自samhan666

something()

内容来自samhan

}

内容来自zvvq

4. 应用嵌入检测

内容来自samhan

嵌入检测能够帮助隔离和机构检测里的错误处理。通过创建为特定异常现象量身打造的嵌入检测,能提高检测的可读性和维护性。 zvvq

例:

zvvq

11

zvvq.cn

12

zvvq.cn

13

本文来自zvvq

func TestSomething(t testing.T) { 内容来自samhan666

t.Run("with error", func(t testing.T) {

内容来自zvvq,别采集哟

if err := something(); err == nil { 本文来自zvvq

t.Fatal("expected error")

zvvq

}

内容来自zvvq,别采集哟

})

内容来自zvvq

t.Run("without error", func(t testing.T) { zvvq.cn

if err := something(); err != nil { copyright zvvq

t.Fatalf("unexpected error: %v", err) 内容来自samhan666

}

内容来自samhan

}) 内容来自zvvq

} 内容来自samhan666

以上就是Go 架构检测里的错误处理良好实践的详细内容,大量请关注其他类似文章!

zvvq.cn