我在测试我的模型以进行验证时遇到问题。
我想测试一些验证(密码比较、必填字段等)。
但我不能!我有一个女巫验证码的问题。我该如何解决?
如何通过验证码进行成功测试?
我不能给你确切的代码,但希望这会让你朝着正确的方向前进。以下答案是针对 Yii 的内置验证码,而不是第三方插件/api
首先,验证码存储在会话数据中,这意味着如果您知道正确的变量名称,就可以直接访问它。
其次,您可能只想“模拟”验证码,而不是测试验证码。Yii 是基于 TDD 构建的,因此测试了您正在使用的组件。你不需要重新测试验证码并确保它设置了会话变量,因为 Yii 已经这样做了,他们的测试表明它有效。
我会做什么,找出验证码设置了哪个会话变量,手动将该变量设置为虚拟文本(abcdefg
),然后用相同的虚拟文本()填写您的模型和验证码字段/变量,abcdefg
然后您可以测试验证和验证码字段失败。
我的另一个选择是手动验证码(创建/生成,但不渲染)以便设置文本,然后使用CCaptchaAction
's 方法getVerifyCode()
获取要验证的代码。我相信该方法还会生成验证码文本并将其保存在会话中(如果它不存在)。