2013-09-25 77 views
-1

我有一個測試我的模型進行驗證的問題。TDD與Yii和驗證碼

我想測試一些驗證(密碼比較,必填字段等)。

但我不能!我有一個問題女巫captcha。我該如何解決它?

如何通過驗證碼進行成功測試?

+0

問題是模棱兩可的。你正面臨的問題是什麼?驗證碼沒有生成? ?或者它沒有得到驗證? ? –

回答

2

我不能給你確切的代碼,但希望這會讓你在正確的方向。以下答案適用於Yii的內置驗證碼,而不是第三方插件/ api

首先,驗證碼存儲在會話數據中,這意味着如果您知道正確的變量名稱,則可以直接訪問驗證碼。

二,而不是測試驗證碼,你可能只是想「嘲笑」驗證碼。 Yii建立在TDD之上,因此測試了您正在使用的組件。你不需要重新測試驗證碼,並確保它設置會話變量,因爲Yii已經做到了這一點,他們的測試表明它的工作原理。

我會做什麼,找出哪些會話變量是通過驗證碼設置,手動設置變量爲虛擬文本(abcdefg),然後填寫你的模型和驗證碼字段/變量使用相同的虛擬文本(abcdefg)和那麼您可以測試驗證並驗證失敗的驗證碼字段。

我的另一個選擇是手動創建一個驗證碼(創建/生成但不渲染),以便設置文本,然後使用CCaptchaAction的方法getVerifyCode()獲取要驗證的代碼。我相信該方法還會生成驗證碼文本並將其保存在會話中,如果它不存在。