現在我正在使用Zend框架並將其與phpunit混爲一談。這是我的困境。使用散列密碼進行單元測試
當我創建一個用戶我哈希在用戶表中的密碼。我添加了兩種鹽,一種是應用程序中的靜態鹽,另一種是隨機生成的。我使用數據庫SHA函數,然後使用UNHEX將密碼存儲在二進制列中。爲了告訴數據庫如何散列密碼我用Zend_Db_Expr像這樣:
protected function _createPasswordDbExpression($password)
{
$quoted = $this->getDbTable()->getAdapter()->quoteInto('UNHEX(SHA1(?))', $password);
$binaryPassword = new Zend_Db_Expr($quoted);
return $binaryPassword;
}
到現在爲止我已經使用了XML數據集,以指定預期的結果,但現在,隨着散列密碼,我不不知道該怎麼做。
我看到一個解決方案,這一點,但必須有一個更好的辦法。
我可以prehash密碼,或者密碼,只使用在我的測試,在我的XML文件。
是否有可能會更好,更可檢驗的任何其他解決方案?
我不知道這個二進制列會究竟是如何影響的事情,當PHPUnit的嘗試直接插入一個「哈希」密碼。
感謝您的提示,這已經幫助我使我的代碼方式更可測試。 – 2011-04-06 06:03:26