Golang的单元测试可以使用断言来验证代码的正确性。以下是常用的断言函数:
func (t *T) Errorf(format string, args ...interface{})
:将错误信息写入日志,但测试仍会继续运行。func (t *T) Fail()
:标志测试失败,但继续运行其他测试。func (t *T) FailNow()
:标志测试失败并立即停止测试。func (t *T) Log(args ...interface{})
:记录一条日志信息。
针对不同类型的值,还有特定的比较函数:
func (t *T) Equal(expected, actual interface{}, message ...interface{})
:比较两个值是否相等。func (t *T) NotEqual(expected, actual interface{}, message ...interface{})
:比较两个值是否不相等。func (t *T) True(value bool, message ...interface{})
:判断布尔值是否为true。func (t *T) False(value bool, message ...interface{})
:判断布尔值是否为false。
同时,也可以使用 github.com/stretchr/testify/assert
包提供的更加丰富的断言函数来进行单元测试。例如:
assert.Equal(t, expected, actual)
:比较两个值是否相等。assert.NotEqual(t, expected, actual)
:比较两个值是否不相等。assert.True(t, value)
:判断布尔值是否为true。assert.False(t, value)
:判断布尔值是否为false。assert.Nil(t, value)
:判断值是否为nil。assert.NotNil(t, value)
:判断值是否不为nil。
使用这些断言函数可以方便地编写测试用例并验证代码的正确性。