// ObjectGoPrintDiff is like ObjectDiff, but uses go-spew to print the objects, // which shows absolutely everything by recursing into every single pointer // (go's %#v formatters OTOH stop at a certain point). This is needed when you // can't figure out why reflect.DeepEqual is returning false and nothing is // showing you differences. This will. func ObjectGoPrintDiff(a, b interface{}) string { s := spew.ConfigState{DisableMethods: true} return StringDiff( s.Sprintf("%#v", a), s.Sprintf("%#v", b), ) }