2 回答
TA贡献1784条经验 获得超8个赞
使用类型断言:
err := someFunc()
if retryable, ok := err.(*RetryableError); ok {
// use retryable
}
你的RetryableError不是错误,而是*RetryableError错误。纠正:
func (a RetryableError) Error() string {
return a.msg
}
TA贡献1862条经验 获得超7个赞
assert.IsType
来自https://medium.com/@sebdah/go-best-practices-testing-3448165a0e18的片段:
func TestDivision(t *testing.T) {
tests := []struct{
x float64
y float64
result float64
err error
}{
{ x: 1.0, y: 2.0, result: 0.5, err: nil },
{ x: -1.0, y: 2.0, result: -0.5, err: nil},
{ x: 1.0, y: 0.0, result: 0.0, err: ErrZeroDivision},
}
for _, test := range tests {
result, err := divide(test.x, test.y)
assert.IsType(t, test.err, err)
assert.Equal(t, test.result, result)
}
}
- 2 回答
- 0 关注
- 123 浏览
添加回答
举报