2013-12-18 100 views
-1

如何用驗證碼單元測試表單?yii單元測試驗證碼

我得到這個錯誤:

Fatal error: Call to a member function createAction() on a non-object in framework/validators/CCaptchaValidator.php on line 65

我怎樣才能解決這個問題?

我曾嘗試下面的代碼:

$c = Yii::app()->createController('module/action'); 
Yii::app()->controller = $c[0]; 
$captcha = new CCaptchaAction(Yii::app()->controller, 'captcha'); 
$model->captcha = $captcha->getVerifyCode(); 

,但我得到的錯誤如下:

Fatal error: Call to a member function getUniqueId() on a non-object in C:\xampp\htdocs\yii\framework\web\widgets\captcha\CCaptchaAction.php on line 221

什麼想法?

+2

之前編寫單元測試是有意義的學習語言的基礎知識。單元測試**是一門火箭科學。如果你無法理解那些致命的手段 - 在繼續之前花一些時間學習php。 – zerkms

+1

感謝您真正有用的評論!我知道那是致命的手段,但我不知道該如何解決。如果你不知道,請讓別人回答並幫助我! – user3019375

+0

答案不會幫助你 - 因爲在學習基礎知識之前,你開始做了非常複雜的事情。 「我知道那是什麼致命的手段」 - 所以採取並修復它。你要麼知道它並修復它,要麼不知道它,併爲新手閱讀一些書。 – zerkms

回答

-1

我修正了這個錯誤,通過忽略驗證碼規則並給它一個自定義的值,它的工作原理!

我刪除我的形式規則這一部分:

array('verifyCode', 'captcha', 'allowEmpty'=>!CCaptcha::checkRequirements())