github.com/keysonzzz/kmg@v0.0.0-20151121023212-05317bfd7d39/kmgErr/panic_test.go (about)

     1  package kmgErr
     2  
     3  import (
     4  	"testing"
     5  
     6  	. "github.com/bronze1man/kmg/kmgTest"
     7  )
     8  
     9  /*
    10  func TestPanic(ot *testing.T) {
    11  	defer func() {
    12  		r := recover()
    13  		if r == nil {
    14  			return
    15  		}
    16  		fmt.Println(r)
    17  		debug.PrintStack()
    18  	}()
    19  	f1()
    20  }
    21  
    22  func f1() {
    23  	panic(1)
    24  }
    25  */
    26  
    27  func TestPanicToError(ot *testing.T) {
    28  	flag := 1
    29  	err := PanicToError(func() {
    30  		flag = 2
    31  	})
    32  	Equal(flag, 2)
    33  	Equal(err, nil)
    34  
    35  	err = PanicToError(func() {
    36  		flag = 3
    37  		panic(nil)
    38  		flag = 4
    39  	})
    40  	Equal(flag, 3)
    41  	Equal(err, nil)
    42  
    43  	err = PanicToError(func() {
    44  		panic(1)
    45  		flag = 6
    46  	})
    47  	Equal(flag, 3)
    48  	Ok(err != nil)
    49  	Equal(err.Error(), "1")
    50  }