とりわけ、クラスのコンストラクターをテストしようとしています。文字列でなければならない正確に 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)
);
}
...
}
表記法がまったく気に入らなくても、今では完全に機能します。