我正在尝试测试我班级的构造函数等。它只需要一个必须是字符串的参数。所以我写了这个测试:
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)
);
}
...
}
现在它工作得很好,即使我根本不喜欢这个符号。