我目前正在考虑如何编写测试来检查给定的代码片段是否出现恐慌?我知道 Go 用于recover捕获恐慌,但与 Java 代码不同,您无法真正指定在出现恐慌时应跳过哪些代码或您有什么。所以如果我有一个功能:
func f(t *testing.T) {
defer func() {
if r := recover(); r != nil {
fmt.Println("Recovered in f", r)
}
}()
OtherFunctionThatPanics()
t.Errorf("The code did not panic")
}
我真的不知道是OtherFunctionThatPanics恐慌后我们恢复了,还是函数根本没有恐慌。如果没有恐慌,我如何指定跳过哪些代码,如果出现恐慌,我该如何指定执行哪些代码?我如何检查我们是否从中恢复了一些恐慌?
长风秋雁
侃侃无极
繁星点点滴滴
相关分类