2015-07-14 4 views
1

Я пишу некоторые испытания и мне было интересно, как я мог издеваться следующим каскадный Funciton вызова:PHPUnit издеваться каскадный функция

$validator->errors()->all() 

мне не нужен сбор ошибок, как я хочу, чтобы это было emmpty так, чтобы $this->logerror не вызывается.

Можно ли высмеять $validator->errors()->all() в один звонок?

Что-то вроде

Validator::shouldReceive('errors()->all()') 
     ->once() 
     ->andReturn(array()); 

Code: 
// CLASS 

    $validator = Validator::make(
      ['participant' => $participant'], 
      $programValidator->getRules() 
    ); 

    if($validator->fails()) { 
     foreach($validator->errors()->all() as $error) { 
      $this->logError($record, $error); 
    } 

// TEST 
Validator::shouldReceive('make') 
      ->once() 
      ->andReturn(Mockery::mock(array('fails' => true))); 
+0

Вы должны издеваться над всеми вызовами методов, поэтому вы должны ошибаться, что вызов метода 'errors()' должен возвращать также издевавшийся объект, который в вызове метода 'all()' возвращает пустой массив. Для получения полного ответа вам необходимо указать, какую структуру и версию вы используете, по крайней мере, какой тип объекта возвращается при вызове метода вызова. Надеюсь, эта помощь. – Matteo

ответ