Testing Traits with Mocks in PHPUnit
If you looked at Chain, the library I released yesterday you may have noticed that most of the functionality is implemented in traits to keep single classes small and clean. I also want to keep the tests clean and was delighted to find out that you can mock a class that uses a trait.
Creating a mock is pretty straight forward with PHPUnit:
$mock = $this->getMockForTrait('TraitUnderTest');
$mock->foo();In addition you can mock methods of the using object that are called by the mock.
$mock->expects($this->any())
->method('isBar')
->will($this->returnValue(TRUE));Source: