Мне нужно создать фиктивный объект с набором свойств по умолчанию, чтобы его можно было использовать в кодовой базе при создании экземпляра.
$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';
}
Изменить: упрощенный пример
$fields
, чтобы он вел себя как настоящая модель. Я знаю, что PHPUnit создает моки, записывая код в строку и выполняя его eval(). Я просто не знаю, как включить объявления свойств в этот процесс. - person Mike B   schedule 17.02.2012