Documentation ¶
Overview ¶
Package assert 是对 testing 包的一些简单包装。 方便在测试包里少写一点代码。
提供了两种操作方式:直接调用包函数;或是使用 Assertion 对象。 两种方式完全等价,可以根据自己需要,选择一种。
func TestAssert(t *testing.T) { var v interface{} = 5 // 直接调用包函数 assert.True(t, v == 5, "v的值[%v]不等于5", v) assert.Equal(t, 5, v, "v的值[%v]不等于5", v) assert.Nil(t, v) // 以 Assertion 对象方式使用 a := assert.New(t) a.True(v==5, "v的值[%v]不等于5", v) a.Equal(5, v, "v的值[%v]不等于5", v) a.Nil(v) a.TB().Log("success") // 以函数链的形式调用 Assertion 对象的方法 a.True(false).Equal(5,6) } // 也可以对 testing.B 使用 func Benchmark1(b *testing.B) { a := assert.New(b) a.True(false) for(i:=0; i<b.N; i++) { // do something } }
Index ¶
- func Contains(t testing.TB, container, item interface{}, args ...interface{})
- func Empty(t testing.TB, expr interface{}, args ...interface{})
- func Equal(t testing.TB, v1, v2 interface{}, args ...interface{})
- func Error(t testing.TB, expr interface{}, args ...interface{})
- func ErrorString(t testing.TB, expr interface{}, str string, args ...interface{})
- func ErrorType(t testing.TB, expr interface{}, typ error, args ...interface{})
- func False(t testing.TB, expr bool, args ...interface{})
- func FileExists(t testing.TB, path string, args ...interface{})
- func FileNotExists(t testing.TB, path string, args ...interface{})
- func HasPanic(fn func()) (has bool, msg interface{})
- func IsContains(container, item interface{}) bool
- func IsEmpty(expr interface{}) bool
- func IsEqual(v1, v2 interface{}) bool
- func IsNil(expr interface{}) bool
- func Nil(t testing.TB, expr interface{}, args ...interface{})
- func NotContains(t testing.TB, container, item interface{}, args ...interface{})
- func NotEmpty(t testing.TB, expr interface{}, args ...interface{})
- func NotEqual(t testing.TB, v1, v2 interface{}, args ...interface{})
- func NotError(t testing.TB, expr interface{}, args ...interface{})
- func NotNil(t testing.TB, expr interface{}, args ...interface{})
- func NotPanic(t testing.TB, fn func(), args ...interface{})
- func Panic(t testing.TB, fn func(), args ...interface{})
- func PanicString(t testing.TB, fn func(), str string, args ...interface{})
- func PanicType(t testing.TB, fn func(), typ interface{}, args ...interface{})
- func True(t testing.TB, expr bool, args ...interface{})
- type Assertion
- func (a *Assertion) Contains(container, item interface{}, msg ...interface{}) *Assertion
- func (a *Assertion) Empty(expr interface{}, msg ...interface{}) *Assertion
- func (a *Assertion) Equal(v1, v2 interface{}, msg ...interface{}) *Assertion
- func (a *Assertion) Error(expr interface{}, msg ...interface{}) *Assertion
- func (a *Assertion) ErrorString(expr interface{}, str string, msg ...interface{}) *Assertion
- func (a *Assertion) ErrorType(expr interface{}, typ error, msg ...interface{}) *Assertion
- func (a *Assertion) False(expr bool, msg ...interface{}) *Assertion
- func (a *Assertion) FileExists(path string, msg ...interface{}) *Assertion
- func (a *Assertion) FileNotExists(path string, msg ...interface{}) *Assertion
- func (a *Assertion) Nil(expr interface{}, msg ...interface{}) *Assertion
- func (a *Assertion) NotContains(container, item interface{}, msg ...interface{}) *Assertion
- func (a *Assertion) NotEmpty(expr interface{}, msg ...interface{}) *Assertion
- func (a *Assertion) NotEqual(v1, v2 interface{}, msg ...interface{}) *Assertion
- func (a *Assertion) NotError(expr interface{}, msg ...interface{}) *Assertion
- func (a *Assertion) NotNil(expr interface{}, msg ...interface{}) *Assertion
- func (a *Assertion) NotPanic(fn func(), msg ...interface{}) *Assertion
- func (a *Assertion) Panic(fn func(), msg ...interface{}) *Assertion
- func (a *Assertion) PanicString(fn func(), str string, msg ...interface{}) *Assertion
- func (a *Assertion) PanicType(fn func(), typ interface{}, msg ...interface{}) *Assertion
- func (a *Assertion) TB() testing.TB
- func (a *Assertion) True(expr bool, msg ...interface{}) *Assertion
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ErrorString ¶
ErrorString 断言有错误发生,且错误信息中包含指定的字符串 str。 传递未初始化的 error 值(var err error = nil),将断言失败
func FileExists ¶
FileExists 断言文件存在,否则输出错误信息
func FileNotExists ¶
FileNotExists 断言文件不存在,否则输出错误信息
func HasPanic ¶
func HasPanic(fn func()) (has bool, msg interface{})
HasPanic 判断 fn 函数是否会发生 panic 若发生了 panic,将把 msg 一起返回。
func IsContains ¶
func IsContains(container, item interface{}) bool
IsContains 判断 container 是否包含了 item 的内容。若是指针,会判断指针指向的内容, 但是不支持多重指针。
若 container 是字符串(string、[]byte 和 []rune,不包含 fmt.Stringer 接口), 都将会以字符串的形式判断其是否包含 item。 若 container 是个列表(array、slice、map)则判断其元素中是否包含 item 中的 的所有项,或是 item 本身就是 container 中的一个元素。
func IsEmpty ¶
func IsEmpty(expr interface{}) bool
IsEmpty 判断一个值是否为空(0, "", false, 空数组等)。 []string{""}空数组里套一个空字符串,不会被判断为空。
func IsEqual ¶
func IsEqual(v1, v2 interface{}) bool
IsEqual 判断两个值是否相等。
除了通过 reflect.DeepEqual() 判断值是否相等之外,一些类似 可转换的数值也能正确判断,比如以下值也将会被判断为相等:
int8(5) == int(5) []int{1,2} == []int8{1,2} []int{1,2} == [2]int8{1,2} []int{1,2} == []float32{1,2} map[string]int{"1":"2":2} == map[string]int8{"1":1,"2":2} // map 的键值不同,即使可相互转换也判断不相等。 map[int]int{1:1,2:2} != map[int8]int{1:1,2:2}
func NotContains ¶
NotContains 断言 container 不包含 item 的或是不包含 item 中的所有项
func PanicString ¶
PanicString 断言函数会发生 panic,且 panic 信息中包含指定的字符串内容,否则输出错误信息。
Types ¶
type Assertion ¶
type Assertion struct {
// contains filtered or unexported fields
}
Assertion 是对 testing.TB 进行了简单的封装。 可以以对象的方式调用包中的各个断言函数。
func (*Assertion) ErrorString ¶
ErrorString 参照 assert.ErrorString() 函数
func (*Assertion) FileExists ¶
FileExists 参照 assert.FileExists() 函数
func (*Assertion) FileNotExists ¶
FileNotExists 参照 assert.FileNotExists() 函数
func (*Assertion) NotContains ¶
NotContains 参照 assert.NotContains() 函数
func (*Assertion) PanicString ¶
PanicString 参照 assert.PanicString() 函数