Ich teste Unit- und Integrationstests einer Import / Export-Erweiterung mit EcomDev_PHPUnit . Bei einigen Tests muss ich sicherstellen, dass sich keine Produkte in der Datenbank befinden. Das Problem ist, dass einige Module von Drittanbietern Produkte erstellen, diese jedoch nicht anschließend bereinigen. Was ist der beste Weg, um das Problem zu umgehen?
Meiner Meinung nach wäre der sauberste Ansatz, ein Gerät zu definieren, das EcomDev_PHPUnit mitteilt, dass ich keine Produkte in der Datenbank haben möchte. So ähnlich:
eav:
catalog_product:
Ich fürchte, dies ist nicht in EcomDev_PHPUnit implementiert. (Ist es?)
Eine andere Vermutung von mir wäre, dass ich meiner setUp
Methode einen Code hinzufügen muss, der alle über die Produktkollektion verfügbaren Produkte löscht.
Am fehleranfälligsten wäre es, alle produktbezogenen Tabellen im Fixture zu definieren und sie von EcomDev_PHPUnit leeren zu lassen.
Mächtige Götter des automatisierten Testens, bitte senden Sie mir einen Hinweis!
PS: Ich weiß, dass Sie normalerweise Ergebnisse verspotten und das tatsächliche Schreiben in die Datenbank nicht testen würden. Da die Tests überprüfen sollten, ob Produkte in die von Magento als beabsichtigt erkannte Datenbank geschrieben wurden, muss ich dies vermutlich auf diese Weise tun. Ich bin sowieso offen für Vorschläge.
quelle
Antworten:
Um dieses Problem zu umgehen, führe ich dies in meiner
setUp
Methode aus:Beachten Sie, dass Sie dies auch wie das Magento ImportExport-Modul tun und die Fremdschlüsseleinschränkungen die Arbeit für eine bessere Leistung erledigen lassen können:
Beachten Sie, dass Sie möglicherweise etwas Magie beim Löschen von Produkten verpassen, wenn Sie die SQL-Anweisung direkt ausführen.
quelle