-
Book Overview & Buying
-
Table Of Contents
-
Feedback & Rating
Instant Hands-on Testing with PHPUnit How-to
By :
Traits are a new concept introduced in PHP 5.4. Similar to Abstract classes they cannot be instantiated directly. You can always create a test class that uses a particular trait to test the functionality in that trait. However, PHPUnit has built-in functionality to dynamically create classes that use traits. This allows for simple testing of traits.
Consider a modified version of the CardCollection class that is, instead, represented as a trait.
<?php
trait CardCollectionTrait
{
//...
public function count()
{
return count($this->cards);
}
//...
}You can create a test similar to what was created earlier for the CardCollection class.
<?php
class CardCollectionTraitTest extends PHPUnit_Framework_TestCase
{
private $cardCollection;
public function setUp()
{
$this->cardCollection = $this->getObjectForTrait('CardCollectionTrait');
}
public function testCountOnEmpty()
{
$this->assertEquals(0, $this->cardCollection->count());
}
//...
}Similar to how PHPUnit can be used to generate concrete implementations of abstract classes, it can also be used to generate a user of a given trait. The PHPUnit_Framework_TestCase::getObjectForTrait() method will generate and instantiate a class that uses the trait you pass as the first argument. You can then test the trait as you would test any other class.
Change the font size
Change margin width
Change background colour