2014-01-26 1 views
1

Я использую Mockery для издевательства над классом с помощью магического метода __call().Mockery __call() имеет другую подпись

Проблема моя издевались объект имеет __call() с другой подписью в реальном классе, и я получаю эту ошибку:

ErrorException: Declaration of Mockery_10_EpiTwitter::__call() should be compatible with EpiTwitter::__call($name, $params = NULL) 

Ниже моя процедура насмешливое:

$mock = Mockery::mock('EpiTwitter')->shouldReceive('useAPIVersion')->once()->with('1.1')->mock(); 

Я также попытался чтобы сделать частичный макет, но ошибка выше.

ответ

2

Ошибка вызвана уровнем ошибки E_STRICT, который не позволяет дочерним методам с разными аргументами или уровнем доступа, чем их родители.

+1

Пятно на! Я смог обойти это, поставив 'if (defined ('E_STRICT')) error_reporting ('E_ALL^​​E_STRICT')' в той части теста, которая использует '__call()' – EricC

+0

@ EricC. Большое спасибо! –