Я ищу лучший способ идти о тестировании следующего статического метода (в частности, с использованием Doctrine Model):PHPUnit Mock объектов и статические методы
class Model_User extends Doctrine_Record
{
public static function create($userData)
{
$newUser = new self();
$newUser->fromArray($userData);
$newUser->save();
}
}
В идеале я хотел бы использовать фиктивный объект для того, чтобы «fromArray» (с предоставленными пользовательскими данными) и «save» были вызваны, но это невозможно, поскольку метод является статическим.
Любые предложения?
Стоит отметить " Этот подход работает только для укусов и издевательств вызовов статических методов, когда вызывающий и вызываемый находятся в одном классе. Это связано с тем, что [статические методы смертность к испытанию] (http://misko.hevery.com/2008/12/15/static-methods-are-death-to-testability/). " –
Функция 'staticExpects' была удалена с PHPUnit v4. См. [Эту тему в github] (https://github.com/sebastianbergmann/phpunit-mock-objects/issues/137) для объяснения причин. –
Как мы знаем, что 'staticExpects' был завершен, удаленный из последней версии PHPUnit, тогда каков альтернативный способ достичь этого без' staticExpects'? –