Documentation ¶
Overview ¶
Package testutil provide some test help util functions. eg: http test, mock ENV value
Index ¶
- func ClearOSEnv()
- func DiscardStdout() error
- func MockCleanOsEnv(mp map[string]string, fn func())
- func MockEnvValue(key, val string, fn func(nv string))
- func MockEnvValues(kvMap map[string]string, fn func())
- func MockOsEnv(mp map[string]string, fn func())
- func MockOsEnvByText(envText string, fn func())
- func MockRequest(h http.Handler, method, path string, data *MD) *httptest.ResponseRecorder
- func NewHttpRequest(method, path string, data *MD) *http.Request
- func RestoreStderr(printData ...bool) (s string)
- func RestoreStdout(printData ...bool) (s string)
- func RevertOSEnv()
- func RewriteStderr()
- func RewriteStdout()
- type Buffer
- type M
- type MD
- type TestWriter
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ClearOSEnv ¶
func ClearOSEnv()
ClearOSEnv info.
Usage:
testutil.ClearOSEnv() defer testutil.RevertOSEnv() // do something ...
func DiscardStdout ¶
func DiscardStdout() error
DiscardStdout Discard os.Stdout output
Usage:
DiscardStdout() fmt.Println("Hello, playground") RestoreStdout()
func MockCleanOsEnv ¶
MockCleanOsEnv by env map data.
will clear all old ENV data, use given data map. will recover old ENV after fn run.
func MockEnvValue ¶
MockEnvValue will store old env value, set new val. will restore old value on end.
func MockEnvValues ¶
MockEnvValues will store old env value, set new val. will restore old value on end.
func MockOsEnvByText ¶
func MockOsEnvByText(envText string, fn func())
MockOsEnvByText by env text string. will clear all old ENV data, use given data map. will recover old ENV after fn run.
func MockRequest ¶
MockRequest mock an HTTP Request
Usage:
handler := router.New() res := MockRequest(handler, "GET", "/path", nil) // with data 1 body := strings.NewReader("string ...") res := MockRequest(handler, "POST", "/path", &MD{ Body: body, Headers: M{"x-head": "val"} }) // with data 2 res := MockRequest(handler, "POST", "/path", &MD{ BodyString: "data string", Headers: M{"x-head": "val"} })
func NewHttpRequest ¶
NewHttpRequest for http testing Usage:
req := NewHttpRequest("GET", "/path", nil) // with data 1 body := strings.NewReader("string ...") req := NewHttpRequest("POST", "/path", &MD{ Body: body, Headers: M{"x-head": "val"} }) // with data 2 req := NewHttpRequest("POST", "/path", &MD{ BodyString: "data string", Headers: M{"x-head": "val"} })
func RestoreStderr ¶
RestoreStderr restore os.Stderr
func RestoreStdout ¶
RestoreStdout restore os.Stdout
func RewriteStderr ¶
func RewriteStderr()
RewriteStderr rewrite os.Stderr
Usage:
RewriteStderr() fmt.Fprintln(os.Stderr, "Hello, playground") msg := RestoreStderr()
func RewriteStdout ¶
func RewriteStdout()
RewriteStdout rewrite os.Stdout
Usage:
RewriteStdout() fmt.Println("Hello, playground") msg := RestoreStdout()
Types ¶
type MD ¶
type MD struct { // Headers headers Headers M // Body body. eg: strings.NewReader("name=inhere") Body io.Reader // BodyString quick add body. BodyString string // BeforeSend callback BeforeSend func(req *http.Request) }
MD simple request data
type TestWriter ¶
type TestWriter struct { Buffer // ErrOnWrite return error on write, useful for testing ErrOnWrite bool // ErrOnFlush return error on flush, useful for testing ErrOnFlush bool // ErrOnClose return error on close, useful for testing ErrOnClose bool }
TestWriter struct, useful for testing
func (*TestWriter) SetErrOnClose ¶
func (w *TestWriter) SetErrOnClose() *TestWriter
SetErrOnClose method
func (*TestWriter) SetErrOnFlush ¶
func (w *TestWriter) SetErrOnFlush() *TestWriter
SetErrOnFlush method
func (*TestWriter) SetErrOnWrite ¶
func (w *TestWriter) SetErrOnWrite() *TestWriter
SetErrOnWrite method