控制器的PHP单元测试没有返回错误,也没有成功消息

时间:2010-04-21 18:36:28

标签: php unit-testing model-view-controller zend-test

我正在使用zend模块化导向器结构,即

   application  
      modules  
         users  
           controllers  
            .  
            .  
        lessons  
        reports  
        blog  

我在“博客”中对控制器进行了单元测试,类似于下面的代码部分: 我肯定做了一些非常错误的事情,或者错过了一些东西 - 就像我运行测试时,我没有得到任何错误,没有成功的消息(通常就像...... OK(2次测试,2次断言))。 我从layout.phtml获取了所有文本,其中我有全局网站布局。

这是我第一次为zend-M-V-C结构编写单元测试,所以可能我错过了一些重要的东西?

到此为止....

 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 个答案:

答案 0 :(得分:1)

public/index.php文件是用于引导您的应用程序以进行Web查看的脚本。我认为你不应该把它包含在你的测试脚本中。此外,您可以通过引用APPLICATION_PATH来避免所有这些相对路径。

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