Unit Testing Observers in Magento

14

Wie nähern Sie sich dem Testen von Beobachtern in Magento? (Arbeiten mit EcomDev_PHPUnit )

Welche Art von Behauptungen beinhaltet das?

  • überprüfe ob das Event versendet wird ( assertEventDispatched())
  • Überprüfen Sie die Funktion mit Scheindaten
  • ...

Im Idealfall würde ich gerne die Meinung anderer Entwickler zu dem Ansatz und den gemachten Aussagen sehen.

FlorinelChis
quelle
Genau das. Überprüfen Sie, ob Ihr Ereignis ausgelöst wurde, und rufen Sie dann einfach die Observer-Methode mit Scheindaten auf, und überprüfen Sie, ob es korrekt ist. Im Idealfall sollten Sie prüfen, ob der Beobachter für das richtige Ereignis konfiguriert ist
Fabian Blechschmidt

Antworten:

5

Ich möchte auch sicherstellen, dass der Beobachter tatsächlich aufgerufen wird, wenn eine entsprechende Aktion ausgeführt wird, z. B. wenn Sie ein catalog_product_save_after auslösen, und dann folgendermaßen vorgehen:

// initialize $mock as your observer
$mock->expects($this->once())
     ->method('catalogProductSaveAfter')
     ->will($this->returnSelf()); // the observer usually returns itself
$product = Mage::getModel('catalog/product')->load(4);
// Do action which should dispatch your event once
$product->setName("test")->save();

Dies schlägt fehl, wenn Ihre Methode nicht genau einmal aufgerufen wird.

mpaepper
quelle