qtsuite

package
v1.101.0 Latest Latest
Warning

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

Go to latest
Published: Aug 3, 2023 License: MIT Imports: 5 Imported by: 0

Documentation

Overview

Package qtsuite allows quicktest to run test suites.

A test suite is a value with one or more test methods. For example, the following code defines a suite of test functions that starts an HTTP server before running each test, and tears it down afterwards:

type suite struct {
	url string
}

func (s *suite) Init(t *testing.T) {
	hnd := func(w http.ResponseWriter, req *http.Request) {
		fmt.Fprintf(w, "%s %s", req.Method, req.URL.Path)
	}
	srv := httptest.NewServer(http.HandlerFunc(hnd))
	t.Cleanup(srv.Close)
	s.url = srv.URL
}

func (s *suite) TestGet(t *testing.T) {
	t.Parallel()
	resp, err := http.Get(s.url)
	qt.Assert(t, qt.IsNil(err))
	defer resp.Body.Close()
	b, err := ioutil.ReadAll(resp.Body)
	qt.Assert(t, qt.IsNil(err))
	qt.Assert(t, qt.Equals(string(b), "GET /"))
}

func (s *suite) TestHead(t *testing.T) {
	t.Parallel()
	resp, err := http.Head(s.url + "/path")
	qt.Assert(t, qt.IsNil(err))
	defer resp.Body.Close()
	b, err := ioutil.ReadAll(resp.Body)
	qt.Assert(t, qt.IsNil(err))
	qt.Assert(t, qt.Equals(string(b), ""))
	qt.Assert(t, qt.Equals(resp.ContentLength, 10))
}

The above code could be invoked from a test function like this:

func TestHTTPMethods(t *testing.T) {
	qtsuite.Run(t, &suite{})
}

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Run

func Run(t *testing.T, suite any)

Run runs each test method defined on the given value as a separate subtest. A test is a method of the form

func (T) TestXxx(*testing.T)

where Xxx does not start with a lowercase letter.

If suite is a pointer, the value pointed to is copied before any methods are invoked on it: a new copy is made for each test. This means that it is OK for tests to modify fields in suite concurrently if desired - it's OK to call t.Parallel().

If suite has a method of the form

func (T) Init(*testing.T)

this method will be invoked before each test run.

Types

This section is empty.

Jump to

Keyboard shortcuts

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