github.com/goravel/framework@v1.13.9/support/debug/dump_test.go (about) 1 package debug 2 3 import ( 4 "bytes" 5 "os" 6 "testing" 7 8 "github.com/stretchr/testify/assert" 9 ) 10 11 func redirectStdout(fn func()) ([]byte, error) { 12 f, err := os.CreateTemp("", "stdout") 13 if err != nil { 14 return nil, err 15 } 16 defer os.Remove(f.Name()) 17 defer f.Close() 18 19 orig := os.Stdout 20 os.Stdout = f 21 fn() 22 os.Stdout = orig 23 24 return os.ReadFile(f.Name()) 25 } 26 27 func TestDump(t *testing.T) { 28 buf, err := redirectStdout(func() { 29 Dump("foo") 30 }) 31 assert.NoError(t, err) 32 assert.Equal(t, `(string) (len=3) "foo" 33 `, string(buf)) 34 } 35 36 func TestFDump(t *testing.T) { 37 var buf bytes.Buffer 38 w := &buf 39 40 FDump(w, "foo") 41 42 assert.Equal(t, `(string) (len=3) "foo" 43 `, buf.String()) 44 } 45 46 func TestSDump(t *testing.T) { 47 assert.Equal(t, `(string) (len=3) "foo" 48 `, SDump("foo")) 49 }