Наблюдатели модульного тестирования в Magento

14

Как вы подходите к модульному тестированию Observers в Magento? (работает с EcomDev_PHPUnit )

Какие утверждения включают в себя?

  • проверить, отправляется ли событие ( assertEventDispatched())
  • проверить функцию с фиктивными данными
  • ...

В идеале я хотел бы видеть мнение других разработчиков относительно подхода и сделанных утверждений.

FlorinelChis
источник
Именно это. Проверьте, отправлено ли ваше событие, а затем просто вызовите метод наблюдателя с фиктивными данными и убедитесь, что оно правильное. В идеале вы должны проверить, что наблюдатель настроен на правильное событие
Fabian Blechschmidt

Ответы:

5

Я также хотел бы убедиться, что наблюдатель действительно вызывается при выполнении соответствующего действия, например, когда вы отправляете catalog_product_save_after, затем делаете что-то вроде:

// 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();

Это не удастся, если ваш метод не вызывается ровно один раз.

mpaepper
источник