Nu heb ik een class die een public static function validate() moet bevatten. Ik kan deze vereiste testen met één unittest met drie asserts:
<?php
class InternationalArticleNumberTest extends PHPUnit_Framework_TestCase
{
/**
* @testdox Public static validate() method exists
*/
public function testPublicStaticValidateMethodExists()
{
$class = new \ReflectionClass('\NewCo\Types\InternationalArticleNumber');
$this->assertTrue($class->hasMethod('validate'));
$method = new \ReflectionMethod('\NewCo\Types\InternationalArticleNumber', 'validate');
$this->assertTrue($method->isPublic());
$this->assertTrue($method->isStatic());
}
}
?>
Ik kan hetzelfde echter ook testen met drie unittests met elk één assert:
<?php
class InternationalArticleNumberTest extends PHPUnit_Framework_TestCase
{
/**
* @testdox validate() method exists
*/
public function testValidateMethodExists()
{
$class = new \ReflectionClass('\NewCo\Types\InternationalArticleNumber');
$this->assertTrue($class->hasMethod('validate'));
}
/**
* @testdox validate() method is public
*/
public function testValidateMethodIsPublic()
{
$method = new \ReflectionMethod('\NewCo\Types\InternationalArticleNumber', 'validate');
$this->assertTrue($method->isPublic());
}
/**
* @testdox validate() method is static
*/
public function testValidateMethodIsStatic()
{
$method = new \ReflectionMethod('\NewCo\Types\InternationalArticleNumber', 'validate');
$this->assertTrue($method->isStatic());
}
}
?>
Welke aanpak verdient de voorkeur? En wat zijn jullie andere gedachten hierover?