TDD与Yii和验证码

时间:2013-09-25 16:38:04

标签: php yii tdd phpunit

我在验证模型时遇到问题。

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

但我不能!我有一个问题,女巫验证码。我该如何解决?

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

1 个答案:

答案 0 :(得分:2)

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

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

其次,您可能只想“模拟”验证码,而不是测试验证码。 Yii是基于TDD构建的,因此测试了您正在使用的组件。你不需要重新测试验证码,并确保它设置会话变量,因为Yii已经这样做了,他们的测试显示它有效。

我会做什么,找出哪个会话变量由验证码设置,手动将该变量设置为虚拟文本(abcdefg),然后使用相同的虚拟文本填写模型和验证码字段/变量( abcdefg)然后您可以测试验证和验证验证码字段。

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