使用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实际上没有抛出异常,那么测试当然不会成功。此外:测试并不意味着忽略语法/运行时错误