Tôi hiện đang cân nhắc cách viết các bài kiểm tra để kiểm tra xem một đoạn mã nhất định có bị hoảng loạn hay không? Tôi biết rằng Go sử dụng recover
để bắt hoảng loạn, nhưng không giống như mã Java, bạn thực sự không thể chỉ định mã nào nên được bỏ qua trong trường hợp hoảng sợ hoặc bạn có gì. Vì vậy, nếu tôi có một chức năng:
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")
}
Tôi thực sự không thể biết liệu OtherFunctionThatPanics
hoảng loạn và chúng tôi đã hồi phục, hay nếu chức năng không hoảng loạn chút nào. Làm cách nào để chỉ định mã nào cần bỏ qua nếu không có hoảng sợ và mã nào để thực thi nếu có hoảng sợ? Làm thế nào tôi có thể kiểm tra xem chúng tôi đã khôi phục được một số hoảng sợ hay chưa?