我有一個登錄後面的應用程序,它使用zend_acl和zend_auth。使用Zend Auth和Zend ACL進行PHP單元測試
在預調度期間,我有一個ACL插件,爲ACL創建所有規則。我還有一個Auth插件,用於檢查您是否登錄,如果有,您是否可以根據ACL訪問請求的資源。
由於應用程序完全是一個登錄,如果你在。
單元測試記錄,這似乎是不可能的,或者說更可能我失去了一些東西明顯ACL只落後創建。
在我的單元測試設置方法中,我模擬了一個成功的登錄,它返回一個zend_auth實例。通過測試表明此登錄成功。但是,如果我通過測試嘗試分派到另一個位置,或者評估登錄的用戶是否可以訪問給定的資源,它將始終被插件拒絕,因爲它們還沒有登錄。我不是當然,爲什麼這是,誰能提醒?
例如,這通過:
public function testLoggedIn()
{
$this->assertTrue(Zend_Auth::getInstance()->hasIdentity());
}
這因爲它是由插件拒絕失敗:
public function testUserAccess()
{
$this->dispatch('/home');
$this->assertResponseCode(200);
$this->assertQueryContentContains('#nav_side');
$this->resetRequest()
->resetResponse();
}
這,我發現似乎仍然被重定向到登陸頁面插件不知道用戶是否已登錄。
任何幫助非常感謝。
是的 - 謝謝你,似乎是問題。 – 2010-07-28 16:12:07