4
我剛剛開始使用PHPUnit和TDD。這個PHPUnit測試是否有意義(或者我正在測試框架/ PHP)?
其中,我不能真正回答這個問題:這是一個很好的測試嗎?我是否真的在測試我的代碼或已經測試過的東西(即框架或PHP本身)?
小例子,這是測試對象:
class DateMax extends Constraint
{
/**
* @var string
*/
public $limit;
/**
* @var string
*/
private $invalidLimit = 'Option "limit" should be a valid date/time string.';
public function __construct($options = null)
{
parent::__construct($options);
if(false === strtotime($this->limit)) {
throw new InvalidOptionsException($this->invalidLimit, ['limit']);
}
}
}
我想測試InvalidOptionsException
預計當無效的「限制」選項傳遞,否則$constraint->limit
持有正確的值:
/**
* @dataProvider getInvalidLimits
* @expectedException InvalidOptionsException
*/
public function testInvalidLimits($testLimit)
{
new DateMax($testLimit);
}
/**
* @dataProvider getValidLimits
*/
public function testValidLimits($testLimit)
{
$constraint = new DateMax($testLimit);
$this->assertEquals($testLimit, $constraint->limit);
}
/**
* @return array[]
*/
public function getInvalidLimits()
{
return array(array('invalid specification'), array('tomorr'));
}
/**
* @return array[]
*/
public function getValidLimits()
{
return array(array('now'), array('+1 day'),array('last Monday'));
}
所以問題是這是否有任何意義,或者我正在測試框架/ PHP本身?