2013-08-27 53 views
2

我開始使用ZfcUser + BjyAuthorize爲Zend Framework 2項目進行單元測試。BjyAuthorize和PHPUnit

我不是一個單元測試專家,所以我發現如何模擬ZfcUser here

現在我還必須嘲笑BjyAuthorize。有沒有人設法做到這一點?

回答

4

那麼對此做出迴應肯定會遲到。

我來用模仿對象(當然我不喜歡使用模擬......)的解決方案,我無法找到一個方法來正確初始化BjyAuthorize ...

那麼我的測試控制器延伸從AbstractHttpControllerTestCase

在::的TestController設置()我所做的模擬對象這樣的:

// Creating mock 
    $mockBjy = $this->getMock("BjyAuthorize\Service\Authorize", array("isAllowed"), array($this->getApplicationConfig(), $this->getApplication()->getServiceManager())); 

    // Bypass auth, force true 
    $mockBjy->expects($this->any()) 
      ->method('isAllowed') 
      ->will($this->returnValue(true)); 

    // Overriding BjyAuthorize\Service\Authorize service 
    $this->getApplication() 
     ->getServiceManager() 
     ->setAllowOverride(true) 
     ->setService('BjyAuthorize\Service\Authorize', $mockBjy); 

我不喜歡,雖然這個解決方案,我覺得很醜陋,但我不能找到一個其他方式來做到這一點。

+0

這確實很晚,我終於切換到Selenium + PHPUnit來測試我的網站,它看起來很有前途,因爲它很容易使用,並且可以同時測試JavaScript(我的一半代碼實際上是JavaScript)。 –