我需要创建一个具有默认属性集的模拟对象,以便在实例化时可以在代码库中使用其他软件。使用默认属性创建模拟对象
$mock = $this->getMock('MyClass', array(), array(), 'MyClass_Mock');
$mock->prop = 'foobar';
$myclassMock = new get_class($mock);
var_dump($myclassMock->prop); // NULL
// How can I make this dump 'foobar' ?
我测试确定,定位,和实例化这些类,以便注入嘲笑对象会破坏测试的目的,框架的一部分。
我并不需要模拟任何方法..只是动态创建一个嘲笑类,像这样:
class MyClass_Mock extends MyClass {
public $prop = 'foobar';
}
编辑:简化的例子
只是为了清楚起见,你想嘲笑一个现有的类,并给你的模拟该类的默认属性,而不真正实例化被嘲笑的类? – Leigh 2012-02-17 15:31:47
@Leigh右键,该类将在框架中进行更深层次的实例化。我嘲笑的这个类是一个抽象模型,我想给它一些'$ fields',这样它就像一个真正的模型一样。我知道PHPUnit通过将代码写入字符串并对其进行评估()来创建模拟。我只是不知道如何在该过程中包含财产声明。 – 2012-02-17 15:34:50