Модульные тесты PHP для контроллера не выдают ошибок и сообщений об успехе - PullRequest
0 голосов
/ 21 апреля 2010

Я использую модульную структуру директора Zend, т.е.

   application  
      modules  
         users  
           controllers  
            .  
            .  
        lessons  
        reports  
        blog  

У меня есть модульный тест для контроллера в 'blog', который выглядит примерно так, как в следующем разделе кода: я определенно делаючто-то очень неправильное или что-то упущено - например, когда я запускаю тест, я не получаю ни ошибки, ни сообщения об успехе (обычно это выглядит как ... ОК (2 теста, 2 утверждения)).Я получаю весь текст из layout.phtml, где у меня есть глобальный макет сайта.

Это мое первое начинание по написанию юнит-теста для структуры zend-MVC, поэтому, возможно, я упускаю что-то важное?

Здесь идет ....

 require_once '../../../../public/index.php';
 require_once '../../../../application/Bootstrap.php';
 require_once '../../../../application/modules/blog/controllers/BrowseController.php';
 require_once '../../../TestConfiguration.php';

 class Blog_BrowseControllerTest extends Zend_Test_PHPUnit_ControllerTestCase
 { 
    public function setUp() {
        $this->bootstrap = array($this, 'appBootstrap');
        Blog_BrowseController::setUp();
    }

   public function appBootstrap() {
      require_once dirname(__FILE__) . '/../../bootstrap.php';

   }

    public function testAction() {
      $this->dispatch('/');
      $this->assertController('browse');
      $this->assertAction('index');
   }

   public function tearDown() {
     $this->resetRequest();
     $this->resetResponse();
     Blog_BrowseController::tearDown();
   }
}

1 Ответ

1 голос
/ 21 апреля 2010

Файл public/index.php - это скрипт, используемый для начальной загрузки вашего приложения для просмотра в Интернете. Я не думаю, что вы должны включить его в свой тестовый скрипт. Кроме того, вы можете избежать всех этих относительных путей, ссылаясь на APPLICATION_PATH.

require_once '../../../../public/index.php';
...