-
Notifications
You must be signed in to change notification settings - Fork 39
Open
Description
Given two unequal structs from another package with unexported fields assert.Equal will panic.
Example with time package
package asserttest
import (
"github.com/bmizerany/assert"
"testing"
"time"
)
func TestBreakAssert(t *testing.T) {
assert.Equal(t, time.Now(), time.Unix(0, 0))
}
Example with an invented struct
asserttest/assert_test.go
package asserttest
import (
"other"
"github.com/bmizerany/assert"
"testing"
)
func TestBreakAssert2(t *testing.T) {
a := new(other.Other)
a.Outer = 2
b := new(other.Other)
b.Outer = 4
assert.Equal(t, a, b)
}
other/other.go
package other
type Other struct {
Outer int
inner int
}
Both these snippets panic like so
panic: reflect.Value.Interface: cannot return value obtained from unexported field or method [recovered]
panic: reflect.Value.Interface: cannot return value obtained from unexported field or method
etc ...
Metadata
Metadata
Assignees
Labels
No labels