expect(HasMethod::class) ->toHaveMethod('foo'); test('opposite class has method') ->throws(ArchExpectationFailedException::class) ->expect(HasMethod::class) ->not->toHaveMethod('foo'); test('class has method via a parent class') ->expect(HasMethodViaParent::class) ->toHaveMethod('foo'); test('class has method via a trait') ->expect(HasMethodViaTrait::class) ->toHaveMethod('foo'); test('failure when the class has no method') ->throws(ArchExpectationFailedException::class) ->expect(HasNoMethodClass::class) ->toHaveMethod('foo'); test('class has no method') ->expect(HasNoMethodClass::class) ->not->toHaveMethod('foo');