Documentation
¶
Overview ¶
Package assert provides API to implement C-like assert macro.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Assert ¶
Assert tests expr and call `t.Fatalf` to terminate test case if expr is false-equivalent value. `false`, 0, nil and empty string are false-equivalent values.
Usage:
import . "github.com/huandu/go-assert" func TestSomething(t *testing.T) { a, b := 1, 2 Assert(t, a > b) // This case fails with message "Assertion failed: a > b". }
func AssertEqual ¶
AssertEqual uses `reflect.DeepEqual` to test v1 and v2 equality.
Usage:
import . "github.com/huandu/go-assert" func TestSomething(t *testing.T) { AssertEqual(t, []int{1,2}, []int{1}) // This case fails with message: // Assertion failed: []int{1,2} == []int{1} // v1 = [1,2] // v2 = [1] }
func AssertNotEqual ¶
AssertNotEqual uses `reflect.DeepEqual` to test v1 and v2 equality.
Usage:
import . "github.com/huandu/go-assert" func TestSomething(t *testing.T) { AssertNotEqual(t, []int{1}, []int{1}) // This case fails with message: // Assertion failed: []int{1} != []int{1} }
Types ¶
type A ¶ added in v1.0.0
The A is a wrapper of testing.T with some extra help methods.
func (*A) Assert ¶ added in v1.0.0
func (a *A) Assert(expr interface{})
Assert tests expr and call `t.Fatalf` to terminate test case if expr is false-equivalent value. `false`, 0, nil and empty string are false-equivalent values. Usage:
import "github.com/huandu/go-assert" func TestSomething(t *testing.T) { a := assert.New(t) x, y := 1, 2 a.Assert(t, x > y) // This case fails with message "Assertion failed: x > y". }
func (*A) Equal ¶ added in v1.0.0
func (a *A) Equal(v1, v2 interface{})
Equal uses `reflect.DeepEqual` to test v1 and v2 equality.
Usage:
import "github.com/huandu/go-assert" func TestSomething(t *testing.T) { a := assert.New(t) a.Equal([]int{1,2}, []int{1}) // This case fails with message: // Assertion failed: []int{1,2} == []int{1} // v1 = [1 2] // v2 = [1] }
func (*A) NilError ¶ added in v1.0.0
func (a *A) NilError(result ...interface{})
NilError expects a function return a nil error. Otherwise, it will terminate the test case using `t.Fatalf`.
Usage:
import "github.com/huandu/go-assert" func TestSomething(t *testing.T) { a := assert.New(t) a.NilError(os.Open("path/to/a/file")) // This case fails if os.Open returns error. }
func (*A) NonNilError ¶ added in v1.0.0
func (a *A) NonNilError(result ...interface{})
NonNilError expects a function return a non-nil error. Otherwise, it will terminate the test case using `t.Fatalf`.
Usage:
import "github.com/huandu/go-assert" func TestSomething(t *testing.T) { a := assert.New(t) f := func() (int, error) { return 0, errors.New("expected") } a.NilError(f()) // This case fails. }
func (*A) NotEqual ¶ added in v1.0.0
func (a *A) NotEqual(v1, v2 interface{})
NotEqual uses `reflect.DeepEqual` to test v1 and v2 equality.
Usage:
import "github.com/huandu/go-assert" func TestSomething(t *testing.T) { a := assert.New(t) a.NotEqual(t, []int{1}, []int{1}) // This case fails with message: // Assertion failed: []int{1} != []int{1} }