使用phpunit测试异常时出错
我正在尝试测试此功能:使用phpunit测试异常时出错,php,phpunit,Php,Phpunit,我正在尝试测试此功能: /** * @expectedException InvalidArgumentException * @expectedExceptionMessage Invalid argument supplied for foreach() */ function testSetAdsData_dataIsNull() { $dataArr = null; $fixture = new AdGroup(); $fixture->se
/**
* @expectedException InvalidArgumentException
* @expectedExceptionMessage Invalid argument supplied for foreach()
*/
function testSetAdsData_dataIsNull()
{
$dataArr = null;
$fixture = new AdGroup();
$fixture->setAdsData($dataArr);
}
但我的控制台中出现了以下错误:
有1个错误:
1) adGroupTest::testSetAdsData_dataIsNull
Invalid argument supplied for foreach()
/home/al/tests/adserver/src/classes/AdGroup.php:31
/home/al/tests/adserver/test/classes/AdGroupTest.php:65
FAILURES!
Tests: 15, Assertions: 23, Errors: 1.
@expectedExceptionMessage
不应该让我安全地避免收到此错误吗?还是我遗漏了什么?错误
!==Exception
更改您的setAdsData()
方法以测试提供的参数是否为有效数组,并抛出一个InvalidArgumentException
如果它不是您的setAdsData
方法:如果(!$argument)抛出new\InvalidArgumentException(“为foreach()提供的参数无效”)代码>。如果setter实际上没有抛出异常,那么测试当然不会成功。此外:测试并不意味着忽略语法/运行时错误Error
!==Exception
更改您的setAdsData()
方法以测试提供的参数是否为有效数组,并抛出一个InvalidArgumentException
如果它不是您的setAdsData
方法:如果(!$argument)抛出new\InvalidArgumentException(“为foreach()提供的参数无效”)代码>。如果setter实际上没有抛出异常,那么测试当然不会成功。此外:测试并不意味着忽略语法/运行时错误