Я бы хотел использовать метод отката транзакций, чтобы изолировать мою базу данных для целей модульного тестирования.В идеале я бы использовал такую структуру:
public static function setUpBeforeClass(){
Mage_Core_Model_Resource_Transaction::beginTransaction();
}
public function testOne(){...}
public function testTwo(){...}
public static function tearDownAfterClass(){
Mage_Core_Model_Resource_Transaction::rollBack();
}
К сожалению, класс Mage_Core_Model_Resource_Transaction
не предоставляет общедоступных функций begin / rollbackTransaction.Я не могу найти какие-либо общедоступные функции Magento для удовлетворения требований.Есть ли эквивалент Zend, который будет работать?
Я думаю, я мог бы переписать Mage_Core_Model_Resource_Transaction
и добавить общедоступные оболочки для защищенных методов, но я не решаюсь переопределить такой базовый класс.
Я также пытался использовать
$this->model = Mage::getModel('model_being_tested');
$this->model->getResource()->beginTransaction();
...
$this->model->getResource()->rollBack();
, а затем использовать $this->model
в тестах, но его нельзя использовать в статических функциях.
Есть предложения или альтернативные архитектуры?Заранее спасибо.