Я пишу плагин Magento и пытаюсь протестировать его с интеграцией тестирования PHPUnit из http://www.ecomdev.org. Сейчас я пытаюсь протестировать метод, который представляет собой два разных набора настроек конфигурации, но по какой-то причине второйникогда не загружается, и первый используется снова, поэтому тесты, которые ожидают, что второй прибор завершится неудачей.
Вот проблема, сведенная к важным строкам:
Modul.php (Модель)
<?php
class MyModule_Module_Model_TestModel extends Mage_Payment_Model_Method_Abstract {
protected $sandbox;
public function __construct() {
$this->sandbox = $this->getConfigData('sandbox');
}
public function getSandboxSetting() {
return $this->sandbox;
}
}
?>
приспособление config.yaml
config
default/payment/modul/sandbox: 0
приспособление configSB.yaml
config
default/payment/modul/sandbox: 1
Modul.php (Тест)
<?php
class MyModule_Module_Test_Model_TestModel extends EcomDev_PHPUnit_Test_Case {
public function setUp() {
parent::setUp();
$this->object = Mage::getModel('module/testmodel');
}
/**
* @test
* @loadFixture config
*/
public function testCorrectShopSettingsWithoutSandbox() {
$this->assertEquals('0', $this->object->getSandboxSetting());
}
/**
* @test
* @loadFixture configSB
*/
public function testCorrectShopSettingsWithSandbox() {
$this->assertEquals('1', $this->object->getSandboxSetting());
}
protected function tearDown() {
unset($this->object);
parent::tearDown();
}
}
?>
К сожалению, вторые тесты не проходят, независимо от того, в каком порядке они выполняются.На самом деле тестовый набор ecomdev должен отказаться от приборов (я посмотрел tearDown () в case.php), но данные конфигурации все еще там и не могут быть перезаписаны.Есть ли обходной путь или это проблема с Magento / набором тестов?