2012-08-23 61 views
1

在Magento上進行一些單元測試時發現了一個奇怪的問題。Mage_Core_Model_Config在單元測試中未獲取值

我有一個測試函數,它從core_config_data表中測試一個值。所以爲了能夠訪問的測試值,在SETUP()函數,我在數據庫中保存的配置值:

public function setUp() 
{ 
    parent::setUp(); 
    $systemConfig = new Mage_Core_Model_Config(); 
    $systemConfig->saveConfig(
     'my/custom/path/config', 
     12 
    ); 
} 

,並在我的測試方法,我得到這個值從數據庫likeso:

$productsNo = Mage::getStoreConfig(my/custom/path/config); 

但它的值爲空,而不是預期的字符串。

這很奇怪,因爲如果我在運行測試後刷新數據庫,數據庫中存在它的值。如果我再次運行測試,測試將起作用,並且它的值不再爲空。

我在做什麼錯?我沒有正確保存該值,或者我沒有以一種好的方式獲取它?

回答

1

您只將配置值保存到數據庫,但不刷新配置緩存,Mage::getStoreConfig()使用該配置緩存。

,達到節能和清涼的同時,你可以使用:

Mage::app()->getConfig() 
    ->saveConfig('my/custom/path/config', 12) 
    ->reinit(); 

這樣的配置值將在當前和以後的請求使用。

如果你並不真正需要的持久性,也就是說,如果你只需要爲當前請求,這個配置值,比我寧願推薦使用:

Mage:app()->getStore() 
    ->setConfig('my/custom/path/config', 12);