Comment tester mes modèles dans une application Zend Framework 1.8+?Comment démarrer le test des modèles Zend Framework?
Disons que mon application est configurée pour commencer les tests. J'ai déjà testé un contrôleur, donc je sais que ça fonctionne. J'ai tous mes contrôleurs étendant mon dossier ControllerTestCase.php
:
<?php
require_once 'Zend/Application.php';
require_once 'Zend/Test/PHPUnit/ControllerTestCase.php';
abstract class ControllerTestCase extends Zend_Test_PHPUnit_ControllerTestCase
{
public $application;
public function setUp()
{
$this->application = new Zend_Application(
APPLICATION_ENV,
APPLICATION_PATH . '/configs/application.ini'
);
$this->bootstrap = array($this, 'appBootstrap');
parent::setUp();
}
public function appBootstrap()
{
$this->application->bootstrap();
}
public function tearDown()
{
Zend_Controller_Front::getInstance()->resetInstance();
$this->resetRequest();
$this->resetResponse();
$this->request->setPost(array());
$this->request->setQuery(array());
parent::tearDown();
}
}
Mais maintenant, je veux commencer à tester mes modèles. Il semble que mon ModelTestCase.php
ne s'étendrait pas Zend_Test_PHPUnit_ControllerTestCase
mais plutôt un Zend_Test_PHPUnit_ModelTestCase
, mais il n'existe pas de telle classe que je connaisse. Comment puis-je commencer à tester mes modèles Zend Framework?
Merci. C'est une très bonne explication. Je me demandais si cela vous dérangerait d'en dire un peu plus sur les modèles incluant/nécessitant/autoloading lorsque vous testez. J'ai un modèle qui étend un modèle abstrait. Peut-être que c'est là que les objets fantaisie entrent? – Andrew
J'ai ajouté quelques détails ci-dessus montrant l'utilisation d'un objet Table faux. Le chargement des classes est totalement ordinaire, vous pouvez le faire avec 'require_once' ou avec le chargement automatique. Je pense que vous pourriez rendre cela plus complexe qu'il ne l'est en réalité. –