2010-08-26 68 views
0

與此類似的問題在此thread中,但它不使用Zend_Session,所以與我的問題不同。Zend_Test - 爲PHPUnit測試登錄和註銷不同的用戶

我已經成功地讓PHPUnit使用Zend Framework的ControllerTestCase類工作。我可以登錄用戶,寫成功的測試爲登錄,所以這是罰款:

$this->request->setMethod('POST')->setPost(array('username' => $user, 'password' => $password)); 

我無法弄清楚如何,雖然註銷用戶。即使我特意嘗試:

$namespace = new Zend_Session_Namespace("Default"); 
$namespace->username = false; 
$namespace->passsword = false; 

這應該註銷用戶,甚至派遣測試到註銷URL不起作用。

我檢查了我的代碼以確保使用POSTing新憑證登錄,並且任何現有會話數據都被新登錄憑據覆蓋。這不會在運行測試時登錄新用戶。

  • 有沒有人試過這個併成功了?

  • 如何註銷用戶以便其他用戶進行新的POST日誌?

謝謝。

回答

1

我假設您使用Zend_Auth進行身份驗證,並且如果我正確理解了您(我還沒有第一杯咖啡),那麼您要在退出後測試,第二個用戶可以登錄。

AFAIK,Z_A默認不會使用默認會話名稱空間,但另一個(我認爲它甚至是Zend_Auth)。如果您要註銷用戶,則只需在Zend_Auth對象上調用clearIdentity()方法即可。

我個人從未測試過登錄/登出功能,但是你可以編寫一個測試用例,首先登錄一個用戶,聲明他已經登錄並且/或者Zend_Auth有一個身份,清除身份,斷言Zend_Auth不會沒有身份,登錄第二個用戶,再次聲明。

HTH :)

編輯:下面是一個測試用例的鏈接進行測試登錄的東西:http://zendframeworkstorefront.googlecode.com/svn/trunk/tests/application/controllers/customerControllerTest.php從基思教皇的「店面」應用程序。

+0

這就是我所需要的。花了我一段時間來嘗試它,但使用'clearIdentity()'完美地工作。 – 2010-09-10 10:58:38