【问题标题】:Unit testing captcha in yiiyii 中的单元测试验证码
【发布时间】:2014-01-06 07:30:53
【问题描述】:

如何使用验证码对表单进行单元测试?

我收到此错误:

致命错误:在第 65 行的 framework/validators/CCaptchaValidator.php 中的非对象上调用成员函数 createAction()

我该如何解决这个错误?

我试过下面的代码:

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

但我收到以下错误:

致命错误:在第 221 行调用 C:\xampp\htdocs\yii\framework\web\widgets\captcha\CCaptchaAction.php 中非对象的成员函数 getUniqueId()

有什么想法吗?

【问题讨论】:

  • 在编写单元测试之前,学习语言基础知识是有意义的。单元测试一门火箭科学。如果你无法理解这个致命的含义 - 在继续之前花点时间学习 php。
  • 感谢您真正有用的评论!我知道那致命的意思是什么,但我不知道我应该如何解决它。如果您也不知道,请让其他人回答并帮助我!
  • 答案对您没有帮助 - 因为您在学习基础知识之前就开始做非常复杂的事情。 “我知道那致命的意思是什么”——所以接受并修复它。你要么知道它并修复它,要么不知道它并为新手读一些书。
  • 如果您不需要帮助,请让其他人这样做。如果我有时间,我没有在这里提问。最好的问候。

标签: unit-testing yii phpunit captcha


【解决方案1】:

我通过忽略验证码规则并给它一个自定义值来修复这个错误,它可以工作!

我在我的表单中删除了这部分规则:

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

【讨论】:

    猜你喜欢
    • 2015-07-23
    • 2012-08-11
    • 2013-05-05
    • 2013-09-28
    • 2012-06-15
    • 2015-10-01
    • 1970-01-01
    • 2017-05-23
    • 2010-11-19
    相关资源
    最近更新 更多