Мне нужно создать фиктивный объект с набором свойств по умолчанию, чтобы его можно было использовать в кодовой базе при создании экземпляра.
$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';
}
Изменить: Упрощенный пример