Tôi có một ứng dụng đứng sau đăng nhập và sử dụng zend_acl và zend_auth.Kiểm tra đơn vị PHP với Zend Auth và Zend ACL
Trong quá trình gửi trước, tôi có một plugin ACL tạo tất cả các quy tắc cho ACL. Tôi cũng có một plugin Auth để kiểm tra xem bạn có đăng nhập hay không và nếu vậy bạn có quyền truy cập vào tài nguyên được yêu cầu theo ACL.
Do việc áp dụng là hoàn toàn sau đăng nhập ACL chỉ được tạo ra nếu bạn đang đăng nhập.
Đơn vị kiểm tra này dường như là không thể, hay đúng hơn là nhiều khả năng tôi là thiếu một cái gì đó rõ ràng.
Trong phương pháp thiết lập thử nghiệm đơn vị của tôi, tôi mô phỏng thông tin đăng nhập thành công trả về phiên bản zend_auth. Các thử nghiệm vượt qua cho biết rằng thông tin đăng nhập này đã thành công.
Tuy nhiên, nếu sau đó, thông qua các bài kiểm tra cố gắng gửi đến vị trí khác hoặc đánh giá xem người dùng đã đăng nhập có quyền truy cập vào tài nguyên đã cho hay không thì plugin luôn bị plugin từ chối vì họ vẫn chưa đăng nhập. chắc chắn tại sao điều này là, bất cứ ai có thể tư vấn cho?
Ví dụ này đi:
public function testLoggedIn()
{
$this->assertTrue(Zend_Auth::getInstance()->hasIdentity());
}
này thất bại vì nó bị từ chối bởi các plugin:
public function testUserAccess()
{
$this->dispatch('/home');
$this->assertResponseCode(200);
$this->assertQueryContentContains('#nav_side');
$this->resetRequest()
->resetResponse();
}
này, tôi đã tìm thấy vẫn dường như được chuyển hướng trở lại trang đăng nhập như các plugin không biết người dùng đã đăng nhập.
Bất kỳ trợ giúp nào được đánh giá cao.
Có, cảm ơn bạn dường như là vấn đề. –