3 Stimmen

Prüfstrategie. PHPUnit mocks innerhalb von zend framework controller integration/smoke tests

Ich habe eine komplexe Backend-Anwendung, die zf 1.11.11 und phpunit 3.5.15 verwendet. Die Anwendung hat einige komplexe Kommunikationskomponenten (soap, rest, etc.). In der CIS- oder Dev-Testumgebung muss ich diese Modelle nachbilden, da ich keine Verbindung oder Anfrage zu den produktiven Drittanbieter-Backends herstellen kann. Mit Mocking funktioniert die Unittest-Schicht also sehr gut. Volle Abdeckung - kein Problem. Das Problem ist, dass ich diese Technik nicht während der Controller-Integrationstests verwenden kann. Es ist eine höhere Schicht, die die Modelle komplett ausblendet. Daher ist es wohl unmöglich, Mocks an dieser Stelle zu injizieren. Auf der einen Seite ist dies richtig und gut, weil es die Natur von Integrationstests ist, auf der anderen Seite erhalte ich eine sehr geringe Abdeckung auf den Controller-Tests.

Zusammenfassung des Problems:

  • Ich kann keine Testdienste erstellen, die mit den Komponenten kommunizieren (hohe Kosten)
  • Ich kann während des Controllertests keine Komponenten-Mocks injizieren (ich setze nur Anfragedaten und löse den Dispatcher aus)
  • Meine Abdeckung des Controllers ist viel zu gering

Ich habe eine Lösung gesehen, die alles als Plugin implementiert. So dass einige Namespace Redirecting kann auf die Mock-Plugins zeigen. Aber ich glaube nicht, dass dies eine gute Lösung ist.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X