我想使用事務回滾方法隔離我的數據庫以進行單元測試。理想情況下,我會用一個結構是這樣的:如何開始和回滾數據庫事務以包裝Magento的PHPUnit套件
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
類不公開公衆開始/ 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
嘗試,但不能在靜態函數中使用。
任何建議或替代架構?提前致謝。
感謝伊萬,再在產品的有用信息提交。我很樂意幫助MageTestSuite,你有回購分享嗎?如果你熱衷的話,請給我詳細的介紹。 – 2010-12-17 22:36:24
@Jonathan我會盡快給你發送SVN證書詳細信息,以便能夠創建初始版本。它似乎不會比一月份早。 – 2010-12-20 15:54:14
@Ivan:請讓我也知道你的測試套件何時可用。也許你會在你的博客上發佈一些關於它的東西? – OSdave 2011-01-19 11:08:43