gpt4 book ai didi

json - 如何在 Golang 中测试 panic ?

转载 作者:IT王子 更新时间:2023-10-29 01:57:50 29 4
gpt4 key购买 nike

func good(json) string {

\\do something
err = json.Unmarshal(body, &list)
if err != nil {
panic(fmt.Sprintf("Unable to parse json %s",err))
}

}

func Testgood_PanicStatement(t *testing.T) {
Convey("And Invalid Json return error",t, func() {
actual := good("garbage json")
So(func() {},shoulPanic)
So(actual ,ShouldEqual,"")
}
}

结果

第 34 行:- 无法解析 json,{%!e(字符串=无效字符“{”寻找对象键字符串的开头)%!e(int64=50)}

goroutine 8 [正在运行]:

问题:当我传递垃圾 json 文件时,它似乎很 panic 并且不执行任何 So 语句?如何解决?

最佳答案

使用 recover()。

func Testgood_PanicStatement(t *testing.T) {
Convey("And Invalid Json return error",t, func() {
defer func() {
if r := recover(); r != nil {
So(func() {},shouldPanic)
So(actual ,ShouldEqual,"")
}
}()
actual := good("garbage json")
}
}

了解更多:

  1. Golang blog

关于json - 如何在 Golang 中测试 panic ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45052597/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com