Adds type info into equality assertions (#6656)

* Adds type info into equality assertions
* tests
* reorder got/want
* more tests
* Merge refs/heads/master into assertions-better-error-reporting
* Merge refs/heads/master into assertions-better-error-reporting
* Merge refs/heads/master into assertions-better-error-reporting
This commit is contained in:
Victor Farazdagi
2020-07-21 03:47:53 +03:00
committed by GitHub
parent 93bbb86a30
commit 9deeb592e6
3 changed files with 32 additions and 14 deletions

View File

@@ -28,6 +28,15 @@ func TestAssert_Equal(t *testing.T) {
actual: 42,
},
},
{
name: "equal values different types",
args: args{
tb: &assertions.TBMock{},
expected: uint64(42),
actual: 42,
},
expectedErr: "Values are not equal, want: 42 (uint64), got: 42 (int)",
},
{
name: "non-equal values",
args: args{
@@ -35,7 +44,7 @@ func TestAssert_Equal(t *testing.T) {
expected: 42,
actual: 41,
},
expectedErr: "Values are not equal, got: 41, want: 42",
expectedErr: "Values are not equal, want: 42 (int), got: 41 (int)",
},
{
name: "custom error message",
@@ -45,7 +54,7 @@ func TestAssert_Equal(t *testing.T) {
actual: 41,
msgs: []interface{}{"Custom values are not equal"},
},
expectedErr: "Custom values are not equal, got: 41, want: 42",
expectedErr: "Custom values are not equal, want: 42 (int), got: 41 (int)",
},
{
name: "custom error message with params",
@@ -55,7 +64,7 @@ func TestAssert_Equal(t *testing.T) {
actual: 41,
msgs: []interface{}{"Custom values are not equal (for slot %d)", 12},
},
expectedErr: "Custom values are not equal (for slot 12), got: 41, want: 42",
expectedErr: "Custom values are not equal (for slot 12), want: 42 (int), got: 41 (int)",
},
}
for _, tt := range tests {
@@ -95,7 +104,7 @@ func TestAssert_DeepEqual(t *testing.T) {
expected: struct{ i int }{42},
actual: struct{ i int }{41},
},
expectedErr: "Values are not equal, got: {41}, want: {42}",
expectedErr: "Values are not equal, want: {42}, got: {41}",
},
{
name: "custom error message",
@@ -105,7 +114,7 @@ func TestAssert_DeepEqual(t *testing.T) {
actual: struct{ i int }{41},
msgs: []interface{}{"Custom values are not equal"},
},
expectedErr: "Custom values are not equal, got: {41}, want: {42}",
expectedErr: "Custom values are not equal, want: {42}, got: {41}",
},
{
name: "custom error message with params",
@@ -115,7 +124,7 @@ func TestAssert_DeepEqual(t *testing.T) {
actual: struct{ i int }{41},
msgs: []interface{}{"Custom values are not equal (for slot %d)", 12},
},
expectedErr: "Custom values are not equal (for slot 12), got: {41}, want: {42}",
expectedErr: "Custom values are not equal (for slot 12), want: {42}, got: {41}",
},
}
for _, tt := range tests {

View File

@@ -21,7 +21,7 @@ func Equal(loggerFn assertionLoggerFn, expected, actual interface{}, msg ...inte
errMsg := parseMsg("Values are not equal", msg...)
if expected != actual {
_, file, line, _ := runtime.Caller(2)
loggerFn("%s:%d %s, got: %v, want: %v", filepath.Base(file), line, errMsg, actual, expected)
loggerFn("%s:%d %s, want: %[4]v (%[4]T), got: %[5]v (%[5]T)", filepath.Base(file), line, errMsg, expected, actual)
}
}
@@ -30,7 +30,7 @@ func DeepEqual(loggerFn assertionLoggerFn, expected, actual interface{}, msg ...
errMsg := parseMsg("Values are not equal", msg...)
if !reflect.DeepEqual(expected, actual) {
_, file, line, _ := runtime.Caller(2)
loggerFn("%s:%d %s, got: %v, want: %v", filepath.Base(file), line, errMsg, actual, expected)
loggerFn("%s:%d %s, want: %v, got: %v", filepath.Base(file), line, errMsg, expected, actual)
}
}

View File

@@ -28,6 +28,15 @@ func TestAssert_Equal(t *testing.T) {
actual: 42,
},
},
{
name: "equal values different types",
args: args{
tb: &assertions.TBMock{},
expected: uint64(42),
actual: 42,
},
expectedErr: "Values are not equal, want: 42 (uint64), got: 42 (int)",
},
{
name: "non-equal values",
args: args{
@@ -35,7 +44,7 @@ func TestAssert_Equal(t *testing.T) {
expected: 42,
actual: 41,
},
expectedErr: "Values are not equal, got: 41, want: 42",
expectedErr: "Values are not equal, want: 42 (int), got: 41 (int)",
},
{
name: "custom error message",
@@ -45,7 +54,7 @@ func TestAssert_Equal(t *testing.T) {
actual: 41,
msgs: []interface{}{"Custom values are not equal"},
},
expectedErr: "Custom values are not equal, got: 41, want: 42",
expectedErr: "Custom values are not equal, want: 42 (int), got: 41 (int)",
},
{
name: "custom error message with params",
@@ -55,7 +64,7 @@ func TestAssert_Equal(t *testing.T) {
actual: 41,
msgs: []interface{}{"Custom values are not equal (for slot %d)", 12},
},
expectedErr: "Custom values are not equal (for slot 12), got: 41, want: 42",
expectedErr: "Custom values are not equal (for slot 12), want: 42 (int), got: 41 (int)",
},
}
for _, tt := range tests {
@@ -95,7 +104,7 @@ func TestAssert_DeepEqual(t *testing.T) {
expected: struct{ i int }{42},
actual: struct{ i int }{41},
},
expectedErr: "Values are not equal, got: {41}, want: {42}",
expectedErr: "Values are not equal, want: {42}, got: {41}",
},
{
name: "custom error message",
@@ -105,7 +114,7 @@ func TestAssert_DeepEqual(t *testing.T) {
actual: struct{ i int }{41},
msgs: []interface{}{"Custom values are not equal"},
},
expectedErr: "Custom values are not equal, got: {41}, want: {42}",
expectedErr: "Custom values are not equal, want: {42}, got: {41}",
},
{
name: "custom error message with params",
@@ -115,7 +124,7 @@ func TestAssert_DeepEqual(t *testing.T) {
actual: struct{ i int }{41},
msgs: []interface{}{"Custom values are not equal (for slot %d)", 12},
},
expectedErr: "Custom values are not equal (for slot 12), got: {41}, want: {42}",
expectedErr: "Custom values are not equal (for slot 12), want: {42}, got: {41}",
},
}
for _, tt := range tests {