Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 4b9713b

Browse files
committed
Improve failure messages for some error asserters
The following changes were made to improve the error messages - ErrorIs now reports clearly the target error is nil - NotErrorIs now reports the target error is nil - ErrorAs now reports clearly the tested error is nil
1 parent 111716d commit 4b9713b

File tree

2 files changed

+9
-4
lines changed

2 files changed

+9
-4
lines changed

assert/assertions.go

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2202,11 +2202,17 @@ func ErrorAs(t TestingT, err error, target interface{}, msgAndArgs ...interface{
22022202
return true
22032203
}
22042204

2205+
expectedText := reflect.ValueOf(target).Elem().Type().String()
2206+
if err == nil {
2207+
return Fail(t, fmt.Sprintf("An error is expected but got nil.\n"+
2208+
"expected: %s", expectedText), msgAndArgs...)
2209+
}
2210+
22052211
chain := buildErrorChainString(err, true)
22062212

22072213
return Fail(t, fmt.Sprintf("Should be in error chain:\n"+
22082214
"expected: %s\n"+
2209-
"in chain: %s", reflect.ValueOf(target).Elem().Type(), chain,
2215+
"in chain: %s", expectedText, chain,
22102216
), msgAndArgs...)
22112217
}
22122218

assert/assertions_test.go

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3402,9 +3402,8 @@ func TestErrorAs(t *testing.T) {
34023402
err: nil,
34033403
result: false,
34043404
resultErrMsg: "" +
3405-
"Should be in error chain:\n" +
3406-
"expected: *assert.customError\n" +
3407-
"in chain: \n",
3405+
"An error is expected but got nil.\n" +
3406+
`expected: *assert.customError` + "\n",
34083407
},
34093408
{
34103409
err: fmt.Errorf("abc: %w", errors.New("def")),

0 commit comments

Comments
 (0)