Implements asserts that an object is implemented by the specified interface. assert.Implements(t, (*MyInterface)(nil), new(MyObject))
(t TestingT, interfaceObject interface{}, object interface{}, msgAndArgs ...interface{})
| 401 | // |
| 402 | // assert.Implements(t, (*MyInterface)(nil), new(MyObject)) |
| 403 | func Implements(t TestingT, interfaceObject interface{}, object interface{}, msgAndArgs ...interface{}) bool { |
| 404 | if h, ok := t.(tHelper); ok { |
| 405 | h.Helper() |
| 406 | } |
| 407 | interfaceType := reflect.TypeOf(interfaceObject).Elem() |
| 408 | |
| 409 | if object == nil { |
| 410 | return Fail(t, fmt.Sprintf("Cannot check if nil implements %v", interfaceType), msgAndArgs...) |
| 411 | } |
| 412 | if !reflect.TypeOf(object).Implements(interfaceType) { |
| 413 | return Fail(t, fmt.Sprintf("%T must implement %v", object, interfaceType), msgAndArgs...) |
| 414 | } |
| 415 | |
| 416 | return true |
| 417 | } |
| 418 | |
| 419 | // NotImplements asserts that an object does not implement the specified interface. |
| 420 | // |
searching dependent graphs…