Ohne saubere Fixtures sind Integrationstests fragil: Tests erzeugen Testdaten, die den nächsten Test beeinflussen, Rollbacks schlagen fehl und das Fixture-Skript ist an einem anderen Pfad als erwartet. Das Magento Test Framework bietet ein ausgefeiltes Fixture-System – vorausgesetzt, man versteht die Mechanismen dahinter.
SearchCriteria-Abfragen, Collection-Filter und EAV-Attribute sind die drei häufigsten Datenzugriffsmuster in Magento – und gleichzeitig die drei häufigsten Stellen, an denen Tests entweder fehlen oder falsch strukturiert sind. Dieser Artikel zeigt, welcher Testtyp für welchen Zugriff geeignet ist und wie man jeden korrekt absichert.
Magento-Unit-Tests ohne Bootstrap laufen in Sekunden statt in Minuten. Aber nicht jede Magento-Klasse lässt sich sinnvoll ohne Framework-Initialisierung testen. ViewModels, reine Service Classes, Plugins auf einfache Daten-Transformationen und Preisberechnungslogik sind ideal. Block-Rendering, Layout-Verarbeitung und Observer-Ketten hingegen brauchen den Bootstrap – und das ist kein Versagen des Tests.