2012-08-23 60 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);