PHPUnit的測試:的PHPUnit不會拋出異常
public function testSizeOver64K() {
try {
$this->login();
$scriptname = 'test script4';
$this->fixture->installScript($scriptname, $this->scripts[$scriptname]);
}
catch (Exception $expected) {
return;
}
$this->fail('An expected exception has not been raised.');
}
函數的方法調用
function installScript($scriptname, $script, $makeactive = false)
{
$this->cmdPutScript($scriptname, $script);
if ($makeactive)
$this->cmdSetActive($scriptname);
return true;
}
private function cmdPutScript($scriptname, $scriptdata)
{
if (self::STATE_TRANSACTION != $this->state) {
$msg = 'Not currently in TRANSACTION state';
$code = 1;
throw new Exception($msg, $code);
}
$stringLength = $this->getLineLength($scriptdata);
$this->doCmd(sprintf("PUTSCRIPT \"%s\" {%d+}\r\n%s", $scriptname, $stringLength, $scriptdata));
return true;
}
private function getLineLength($string) {
if (extension_loaded('mbstring') || @dl(PHP_SHLIB_PREFIX.'mbstring.'.PHP_SHLIB_SUFFIX)) {
$lenght = mb_strlen($string,'8bit');
if ($lenght > 65536) {
$msg = "Script is over 64K";
throw new Exception($msg);
}
return $lenght;
} else {
$lenght = strlen($string);
if ($lenght > 65536) {
$msg = "Script is over 64K";
throw new Exception($msg);
}
return $lenght;
}
}
有人能給出提示,爲什麼PHPUnit的犯規捕獲異常?
對不起,不知道爲什麼$ this-> fixture-> installScript不能如你所期望的那樣工作。錯誤報告是否打開?也許使用調試器:)或者在 - > installScript調用之前輸入一些輸出,並將其放入cmdPutScript中,以查看代碼是否真正在那裏工作。 ---我沒有看到任何理由爲什麼phpunit會導致一個問題,所以我只需要猜測它是你的代碼 – edorian 2011-03-02 08:38:03
當我運行原始代碼,它作爲suposed和拋出異常。看起來由於某些原因,phpunit不執行installScript() – martins 2011-03-02 08:44:34