2013-09-25 80 views
-1

我有一个测试我的模型进行验证的问题。TDD与Yii和验证码

我想测试一些验证(密码比较,必填字段等)。

但我不能!我有一个问题女巫captcha。我该如何解决它?

如何通过验证码进行成功测试?

+0

问题是模棱两可的。你正面临的问题是什么?验证码没有生成? ?或者它没有得到验证? ? –

回答

2

我不能给你确切的代码,但希望这会让你在正确的方向。以下答案适用于Yii的内置验证码,而不是第三方插件/ api

首先,验证码存储在会话数据中,这意味着如果您知道正确的变量名称,则可以直接访问验证码。

二,而不是测试验证码,你可能只是想“嘲笑”验证码。 Yii建立在TDD之上,因此测试了您正在使用的组件。你不需要重新测试验证码,并确保它设置会话变量,因为Yii已经做到了这一点,他们的测试表明它的工作原理。

我会做什么,找出哪些会话变量是通过验证码设置,手动设置变量为虚拟文本(abcdefg),然后填写你的模型和验证码字段/变量使用相同的虚拟文本(abcdefg)和那么您可以测试验证并验证失败的验证码字段。

我的另一个选择是手动创建一个验证码(创建/生成但不渲染),以便设置文本,然后使用CCaptchaAction的方法getVerifyCode()获取要验证的代码。我相信该方法还会生成验证码文本并将其保存在会话中,如果它不存在。