vei*_*lig 5 testing phpunit unit-testing magento
经过一些严肃的调试后,我发现在使用EcomDev_PHPUnit模块运行测试时,我无法调用Magento中的会话对象
任何单/模型调用即Mage::getSingleton('admin/session')或Mage::getModel('customer/session')最终从抛出一个异常EcomDev_PHPUnit_Controller_Request_Http::getHttpHost()说Cannot run controller test, because the host is not set for base url. ,因为这是造成$_SERVER['HTTP_HOST']指标未设置
是否有配置中的某些内容可能导致此问题?
Iva*_*nyi 13
这是与Magento会话初始化相关的问题,它是Magento的内部核心部分.为了摆脱这个错误,就是使用一个模拟对象,它不使用标准的Magento会话初始化过程,因为它使用了核心的php会话.
如果您从一个EcomDev_PHPUnit_Test_Case类扩展了测试用例,则可以使用以下代码替换使用mock的会话对象.
$sessionMock = $this->getModelMockBuilder('admin/session')
->disableOriginalConstructor() // This one removes session_start and other methods usage
->setMethods(null) // Enables original methods usage, because by default it overrides all methods
->getMock();
$this->replaceByMock('singleton', 'admin/session', $sessionMock);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2249 次 |
| 最近记录: |