Ich habe viele Zend Controller Test Tutorials gelesen, aber ich kann keines finden, das erklärt, wie man einen Controller testet, der Modelle verwendet und diese Modelle parodiert.
Ich habe die folgende Controller-Aktion:-
function indexAction(){
// Holen Sie sich den vom Anwendungsprogramm verwendeten Cache
$cache = $this->getCache();
// Holen Sie sich den Index Service-Client und das Modell
$indexServiceClient = new IndexServiceClient($this->getConfig());
$indexModel = $this->_helper->ModelLoader->load('admin_indexmodel', $cache);
$indexModel->setIndexServiceClient($indexServiceClient);
// Laden Sie alle Indizes
$indexes = $indexModel->loadIndexes();
$this->view->assign('indexes', $indexes);
}
Zur Zeit habe ich einen sehr einfachen Testfall:-
public function testIndexActionRoute() {
$this->dispatch( '/admin/index' );
$this->assertModule('admin', 'Falsches Modul verwendet');
$this->assertController('index', 'Falscher Controller verwendet');
$this->assertAction('index', 'Falsche Aktion verwendet');
}
Dieser Test funktioniert, ruft jedoch die echten Modelle und Dienste auf, was manchmal dazu führt, dass es auf der Testumgebung Zeitüberschreitungen gibt und fehlschlägt. Um nur den Controller ordnungsgemäß zu testen, benötige ich Mocks und Erwartungen für IndexServiceClient und IndexModel - wie wird das gemacht?