Skip to content
issue9Public

Repository files navigation

assert

Go codecov license PkgGoDev Go version

assert 包是对 testing 的一个简单扩展,提供的一系列的断言函数,方便在测试函数中使用。

func TestA(t *testing.T) {
	v := true
	a := assert.New(t, false)
	a.True(v)
}

// 也可以对 testing.B 使用
func Benchmark1(b *testing.B) {
	a := assert.New(b, false)
	v := false
	a.True(v)
	for b.Loop() {
		// do something
	}
}

assert/rest 也提供了针对 HTTP 请求的测试功能

func TestHTTP( t *testing.T) {
	a := assert.New(t, false)
	
	srv := rest.NewServer(a, h, nil)
	a.NotNil(srv)
	defer srv.Close()
	
	srv.NewRequest(http.MethodGet, "/body").
		Header("content-type", "application/json").
		Query("page", "5").
		EncodingBody(&bodyTest{ID: 5}, json.Marshal).
		Do().
		Status(http.StatusCreated).
		Header("content-type", "application/json;charset=utf-8").
		EncodingBody(&bodyTest{ID: 6}, json.Unmarshal)
}

// 也可以直接使用原始数据进行测试
func TestRaw(t *testing.T) {
	req :=`POST /users HTTP/1.1
	Host: example.com
	Content-type: application/json
	
	{"username": "admin", "password":"123"}
	
	`
	
	// 期望的返回数据
	resp :=`HTTP/1.1 201
	Location: https://example.com/users/1
	`

	a := assert.New(t, false)
	rest.RawHTTP(a, nil,req, resp)
}

版权

本项目采用 MIT 开源授权许可证,完整的授权说明可在 LICENSE 文件中找到。

Releases

Used by

Contributors

Languages