请告诉我们如何在函数下创建测试用例以测试异常并正确抛出消息。我正在使用Symfony 2.
public function validateParams(Graph $graph, $start, $destination)
{
if (!is_object($graph)) {
throw new \InvalidArgumentException('Graph param should be an object !');
}
if (empty($start)) {
throw new \InvalidArgumentException('Start param is empty !');
}
if (empty($destination)) {
throw new \InvalidArgumentException('Graph param is empty !');
}
return true;
}
我使用下面的测试用例,它说,失败断言类型" \ InvalidArgumentException"扔了。
/**
* @expectedException \InvalidArgumentException
*/
public function testValidateParamsWhenStartingPointIsEmpty()
{
$this->shortestPathCalc= new ShortestPathCalculator();
$this->shortestPathCalc->validateParams($this->graph, ' ', 'f', 'Expected exception not thrown when starting point is empty !');
}
答案 0 :(得分:1)
您班上的问题是empty
的检查是:
来自doc
如果var存在并且具有非空的非零值,则返回FALSE。 否则返回TRUE。
此测试适用于验证器类(绿色条):
class ValidatorTest extends \PHPUnit_Framework_TestCase{
/**
* @expectedException InvalidArgumentException
* @expectedExceptionMessage Start param is empty !
*/
public function testA()
{
$validator = new Validator();
$validator->validateParams(new Graph(),'',' ');
}
希望这个帮助