Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unit testing Mage#u Core#u Model#u Config不';t在单元测试中获取值_Unit Testing_Magento_Config - Fatal编程技术网

Unit testing Mage#u Core#u Model#u Config不';t在单元测试中获取值

Unit testing Mage#u Core#u Model#u Config不';t在单元测试中获取值,unit-testing,magento,config,Unit Testing,Magento,Config,我在Magento上进行单元测试时发现了一个奇怪的问题 我有一个测试函数,它测试core\u config\u data表中的值。因此,为了能够访问该值进行测试,在setUp()函数中,我将配置值保存在数据库中: public function setUp() { parent::setUp(); $systemConfig = new Mage_Core_Model_Config(); $systemConfig->saveConfig( 'my/

我在Magento上进行单元测试时发现了一个奇怪的问题

我有一个测试函数,它测试
core\u config\u data
表中的值。因此,为了能够访问该值进行测试,在setUp()函数中,我将配置值保存在数据库中:

public function setUp()
{
    parent::setUp();
    $systemConfig = new Mage_Core_Model_Config();
    $systemConfig->saveConfig(
        'my/custom/path/config',
        12
    );
}
在我的测试方法中,我从数据库中获取该值,如:

$productsNo = Mage::getStoreConfig(my/custom/path/config);
但它的值为null,不是预期的字符串

这很奇怪,因为如果我在运行测试后刷新数据库,那么它在数据库中存在的值。如果我再次运行测试,测试将工作,并且它的值不再为null


我做错了什么?我没有正确地保存值,或者我没有以良好的方式获取它?

您只将配置值保存到数据库,但没有刷新配置缓存,该缓存由
Mage::getStoreConfig()
使用

要同时实现保存和刷新,您可以使用:

Mage::app()->getConfig()
    ->saveConfig('my/custom/path/config', 12)
    ->reinit();
这样,配置值将在当前和后续请求中可用

如果您真的不需要持久性,也就是说,如果您只需要当前请求的此配置值,那么我建议您使用:

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

您只将配置值保存到数据库,但不刷新配置缓存,该缓存由
Mage::getStoreConfig()
使用

要同时实现保存和刷新,您可以使用:

Mage::app()->getConfig()
    ->saveConfig('my/custom/path/config', 12)
    ->reinit();
这样,配置值将在当前和后续请求中可用

如果您真的不需要持久性,也就是说,如果您只需要当前请求的此配置值,那么我建议您使用:

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