artymail
@artymail

Как протестировать класс, который использует объект Silex?

Всем, привет.

Столкнулся с проблемой написания юнит-тестов для классов, которые используют объект фреймворка 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
  • Вопрос задан
  • 220 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы