Phpunit 使用相同的预期异常测试多个异常
除其他外,我正在尝试测试我的类的构造函数。它只需要一个必须是字符串的参数。所以我写了这个测试:Phpunit 使用相同的预期异常测试多个异常,phpunit,Phpunit,除其他外,我正在尝试测试我的类的构造函数。它只需要一个必须是字符串的参数。所以我写了这个测试: class categoryTest extends PHPUnit_Framework_TestCase { public function testConstructor() { $this->setExpectedException('Exception', 'Unknown data type.'); $objCategory = new category(1);
class categoryTest extends PHPUnit_Framework_TestCase {
public function testConstructor() {
$this->setExpectedException('Exception', 'Unknown data type.');
$objCategory = new category(1);
$this->setExpectedException('Exception', 'Unknown data type.');
$objCategory = new category(-500);
$this->setExpectedException('Exception', 'Unknown data type.');
$objCategory = new category(true);
$this->setExpectedException('Exception', 'Unknown data type.');
$objCategory = new category(array());
...
}
public function testNextMethod() {
}
}
正如你所看到的,我希望每次都有相同的例外
这似乎工作得很好,但脚本在完成后将跳到testNextMethod()
$this->setExpectedException('Exception', 'Unknown data type.');
$objCategory = new category(1);
。我是否必须为每个测试编写自己的testMethod()?或者有解决办法吗
致以最良好的祝愿,
马弗
编辑:
你好,塞浦路斯人
非常感谢您的回复。我这样解决了我的问题:
class categoryTest extends PHPUnit_Framework_TestCase {
protected $backupGlobals = FALSE;
/**
*
* @dataProvider provider
*
**/
public function testMuff($strCategory) {
$this->setExpectedException('Exception', 'Unknown data type.');
$objCategory = new category($strCategory);
}
public function provider() {
$objHIS = new DDDBL('HIS');
return array(array(1),
array(-500),
array(true),
array(array()),
array($objHIS)
);
}
...
}
现在它工作得很好,即使我一点也不喜欢这个符号。您要找的是
数据提供者
,请看这里:
“注意:测试异常时应尽可能具体。对过于泛型的类进行测试可能会导致不良副作用。因此,不再允许使用@expectedException或setExpectedException()测试异常类。”。资料来源: