Всем, привет.
Столкнулся с проблемой написания юнит-тестов для классов, которые используют объект фреймворка Silex. Не могу сообразить как написать mock для него.
Имею класс:
class ProjectHelper
{
private $app;
function __construct ( Application $app )
{
$this -> app = $app;
}
public function GetProjectList ()
{
...
$row = $this -> app['db'] -> fetchAll ( $query );
...
}
}
Хочу протестировать метод GetProjectList, соответственно нужно ему подсунуть мок на app['db'] -> fetchAll (), но как именно это сделать?
Такой вариант не хочет работать:
$appMock = $this -> getMockBuilder ( 'Silex\Application' )
-> disableOriginalConstructor ()
-> getMock ();
$appMock -> expects ( $this -> once () )
-> method ( 'fetchAll' )
-> will ( $this -> returnValue ( 1 ) );
PHPUnit выдает ошибку:
Trying to configure method "fetchAll" which cannot be configured because it does not exist, has not been specified, is final, or is static