testutil

package
v0.5.5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 23, 2022 License: MIT Imports: 8 Imported by: 5

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func DiscardStdout

func DiscardStdout() error

DiscardStdout Discard os.Stdout output Usage:

DiscardStdout()
fmt.Println("Hello, playground")
RestoreStdout()

func MockCleanOsEnv added in v0.5.5

func MockCleanOsEnv(mp map[string]string, fn func())

MockCleanOsEnv by env map data.

will clear all old ENV data, use given data map. will recover old ENV after fn run.

func MockEnvValue added in v0.1.6

func MockEnvValue(key, val string, fn func(nv string))

MockEnvValue will store old env value, set new val. will restore old value on end.

func MockEnvValues added in v0.1.6

func MockEnvValues(kvMap map[string]string, fn func())

MockEnvValues will store old env value, set new val. will restore old value on end.

func MockOsEnv added in v0.3.13

func MockOsEnv(mp map[string]string, fn func())

MockOsEnv by env map data. alias of MockCleanOsEnv

func MockOsEnvByText added in v0.3.13

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

func MockRequest(h http.Handler, method, path string, data *MD) *httptest.ResponseRecorder

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 added in v0.3.6

func NewHttpRequest(method, path string, data *MD) *http.Request

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 added in v0.2.10

func RestoreStderr() (s string)

RestoreStderr restore os.Stderr

func RestoreStdout

func RestoreStdout() (s string)

RestoreStdout restore os.Stdout

func RewriteStderr added in v0.2.10

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 M

type M map[string]string

M short name for map

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 added in v0.5.3

type TestWriter struct {
	bytes.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 NewTestWriter added in v0.5.3

func NewTestWriter() *TestWriter

NewTestWriter instance

func (*TestWriter) Close added in v0.5.3

func (w *TestWriter) Close() error

Close implements

func (*TestWriter) Flush added in v0.5.3

func (w *TestWriter) Flush() error

Flush implements

func (*TestWriter) Write added in v0.5.3

func (w *TestWriter) Write(p []byte) (n int, err error)

Write implements

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL