unit test PHP per i ritorni del controller nessun errore e nessuna informazione successo
-
30-09-2019 - |
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();
}
}
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';