Я пишу плагин Magento и пытаюсь протестировать его с помощью PHPUnit Testing Integration с сайта 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/набором тестов?
https://github.com/magento/taf
? - person Dmytro Zavalkin   schedule 20.03.2012