Skip to content

Commit 6697e04

Browse files
viswajithiiigeorgelesica-wf
authored andcommitted
Support arbitrary objects in msgAndArgs
1 parent 199de5f commit 6697e04

File tree

2 files changed

+7
-1
lines changed

2 files changed

+7
-1
lines changed

assert/assertions.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -179,7 +179,11 @@ func messageFromMsgAndArgs(msgAndArgs ...interface{}) string {
179179
return ""
180180
}
181181
if len(msgAndArgs) == 1 {
182-
return msgAndArgs[0].(string)
182+
msg := msgAndArgs[0]
183+
if msgAsStr, ok := msg.(string); ok {
184+
return msgAsStr
185+
}
186+
return fmt.Sprintf("%+v", msg)
183187
}
184188
if len(msgAndArgs) > 1 {
185189
return fmt.Sprintf(msgAndArgs[0].(string), msgAndArgs[1:]...)

assert/assertions_test.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -283,6 +283,8 @@ func TestEqualFormatting(t *testing.T) {
283283
}{
284284
{equalWant: "want", equalGot: "got", want: "\tassertions.go:\\d+: \n\t+Error Trace:\t\n\t+Error:\\s+Not equal:\\s+\n\\s+expected: \"want\"\n\\s+actual\\s+: \"got\"\n\\s+Diff:\n\\s+-+ Expected\n\\s+\\++ Actual\n\\s+@@ -1 \\+1 @@\n\\s+-want\n\\s+\\+got\n"},
285285
{equalWant: "want", equalGot: "got", msgAndArgs: []interface{}{"hello, %v!", "world"}, want: "\tassertions.go:[0-9]+: \n\t+Error Trace:\t\n\t+Error:\\s+Not equal:\\s+\n\\s+expected: \"want\"\n\\s+actual\\s+: \"got\"\n\\s+Diff:\n\\s+-+ Expected\n\\s+\\++ Actual\n\\s+@@ -1 \\+1 @@\n\\s+-want\n\\s+\\+got\n\\s+Messages:\\s+hello, world!\n"},
286+
{equalWant: "want", equalGot: "got", msgAndArgs: []interface{}{123}, want: "\tassertions.go:[0-9]+: \n\t+Error Trace:\t\n\t+Error:\\s+Not equal:\\s+\n\\s+expected: \"want\"\n\\s+actual\\s+: \"got\"\n\\s+Diff:\n\\s+-+ Expected\n\\s+\\++ Actual\n\\s+@@ -1 \\+1 @@\n\\s+-want\n\\s+\\+got\n\\s+Messages:\\s+123\n"},
287+
{equalWant: "want", equalGot: "got", msgAndArgs: []interface{}{struct{a string}{"hello"}}, want: "\tassertions.go:[0-9]+: \n\t+Error Trace:\t\n\t+Error:\\s+Not equal:\\s+\n\\s+expected: \"want\"\n\\s+actual\\s+: \"got\"\n\\s+Diff:\n\\s+-+ Expected\n\\s+\\++ Actual\n\\s+@@ -1 \\+1 @@\n\\s+-want\n\\s+\\+got\n\\s+Messages:\\s+{a:hello}\n"},
286288
} {
287289
mockT := &bufferT{}
288290
Equal(mockT, currCase.equalWant, currCase.equalGot, currCase.msgAndArgs...)

0 commit comments

Comments
 (0)