PhpRiot
News Archive
PhpRiot Newsletter
Your Email Address:

More information

Sebastian Bergmann's Blog: Testing Traits

Note: This article was originally published at PHPDeveloper on 13 January 2011.
PHPDeveloper

In some of the work he was doing Sebastian Bergmann came across an instance where he needed to both use a trait in his application and try to figure out how to test it with PHPUnit.

To make sure that I did not break anything, I ran the test suite for the BankAccount sample application. The tests for classes that previously extended HashMap (Response, for instance) still passed. Of course, the tests for HashMap were now broken because trait cannot be instantiated. Suddenly I had to think about making traits testable.

He's worked up a way to test them by creating a test just for the trait and using the new "getObjectForTrait" method to instantiate an object. It returns a mocked up version of the object that can be fully interacted with. You'll need to get PHPUnit 3.6 to be able to use this feature, though.