Domanda

Sto usando la struttura modulare direttore Zend, vale a dire

   application  
      modules  
         users  
           controllers  
            .  
            .  
        lessons  
        reports  
        blog  

Ho uno unit test per un controller in 'blog' che va qualcosa come sottostante sezione di codice: Sono sicuramente facendo qualcosa di molto sbagliato, o manca qualcosa - come quando ho eseguito il test, ottengo nessun errore, nessun messaggio di successo (che va di solito come ... OK (2 test, 2 asserzioni)). Ottengo tutto il testo da layout.phtml, dove ho il layout del sito globale.

Questo è il mio primo tentativo di scrittura di un qualcosa di unittest per Zend-M-V-C struttura quindi probabilmente mi manca importante?

Qui va ....

 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();
   }
}
È stato utile?

Soluzione

Il file public/index.php è lo script utilizzato per creare l'applicazione per la visualizzazione web. Non credo che si dovrebbe essere includendolo nel vostro script di test. Inoltre, è possibile evitare tutti quei percorsi relativi facendo riferimento APPLICATION_PATH.

require_once '../../../../public/index.php';
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top