Я создал следующий интерфейс:
<?php
interface Action
{
public function execute(\requests\Request $request, array $params);
}
Затем я пытаюсь сделать объект Mock этого интерфейса с PHPUnit 3.4, но я получаю следующую ошибку:
Неустранимая ошибка: объявление Mock_Action_b389c0b1:: execute() должно быть совместимо с объявлением Action:: execute() в D:\Xampp\xampp\php\PEAR\PHPUnit\Framework\TestCase.php(1121): eval() 'd в строке 2
Я просмотрел трассировку стека, полученную из PHPUnit, и обнаружил, что он создает объект Mock, который реализует интерфейс Action, но создает метод execute следующим образом:
<?php
public function execute($request, array $params)
Как вы можете видеть, PHPUnit берет на себя тип массива-подсказки, но забывает о\запросах\Запрос. Это, очевидно, приводит к ошибке. Кто-нибудь знает обходной путь для этой ошибки?
Я также пробовал его без пространств имен, но я все равно получаю ту же ошибку.