Magento-UnitTests-模拟对象
|
我正在使用Ivan Chepurnyi的扩展程序为Magento模块编写一些测试,但在使用模拟对象时遇到了麻烦。
这是课程:
<?php
class Namespace_Module_Block_Class extends Mage_Core_Block_Template
{
private $_salesCollection;
public function __construct()
{
$this->_salesCollection = Mage::getModel(\'module/classA\')->getCollection()
->addFieldToFilter(\'id\', $this->_getId());
}
public function _getId()
{
return Mage::getModel(\'module/classB\')->getId();//session params
}
public function getSalesTotalNumber()
{
return $this->_salesCollection->count();
}
}
我尝试测试的方法是getSalesTotalNumber()。
这是测试:
<?php
class Namespace_Module_Test_Block_Class extends EcomDev_PHPUnit_Test_Case
{
private $_mock;
public function setUp()
{
$this->_mock = $this->getMock(\'Namespace_Module_Block_Class\',
array(\'_getId\')
);
$this->_mock->expects($this->any())
->method(\'_getId\')
->will($this->returnValue(1024));
parent::setUp();
}
/**
* @test
* @loadFixture
* @loadExpectation
*/
public function testSalesTotalNumber()
{
$actual = $this->_mock->getSalesTotalValue();
$expected = $this->_getExpectations()->getSalesTotalNumber();
$this->assertEquals($expected, $actual);
}
}
如您所见,我想做的是覆盖_getId()方法,以便它返回一个与灯具中的ID匹配的ID,然后加载集合。但这不起作用:-(。
在我的测试中,如果我回显$this->_mock->_getId()
,它将返回正确的ID(1024)。但是在类__construct()
中,$this->_getId()
返回null,这是测试期间的期望值(我的意思是,在测试期间没有会话,因此当我将其存储在会话变量中时它无法获取对象的ID )。因此_getId()方法没有被我的测试用例嘲笑。
任何帮助将不胜感激。
没有找到相关结果
已邀请:
1 个回复
雄鞋谋塘