단위 테스트를 실행할 때 아래 오류가 발생합니다. 그것은 Input :: get을 생성자에 전달하는 것을 좋아하지 않는 것 같지만, 브라우저 내에서 스크립트를 실행할 때 동작이 제대로 작동하므로 컨트롤러 코드가 아님을 알 수 있습니다. 'task_update'코드 중 하나를 꺼내면 입력이있을 때만 테스트가 통과하므로 하나의 메소드에 대한 입력을 받아들이는 이유는 확실하지 않습니다. 포착되지 않는 그냥 내가 task_updates 배열의 입력을하고 있어요하지만 -Laravel - 단위 테스트를 통과하지 못하는 입력
public function store()
{
$task_update = new TaskUpdate(Input::get('tasks_updates'));
$task = $this->task->find(Input::get('tasks_updates')['task_id']);
$output = $task->taskUpdate()->save($task_update);
if (!!$output->id) {
return Redirect::route('tasks.show', $output->task_id)
->with('flash_task_update', 'Task has been updated');
}
}
그리고 테스트는 다음과 같습니다 :
Input::replace(['tasks_updates' => array('description' => 'Hello')]);
$mockClass = $this->mock;
$mockClass->task_id = 1;
$this->mock->shouldReceive('save')
->once()
->andReturn($mockClass);
$response = $this->call('POST', 'tasksUpdates');
$this->assertRedirectedToRoute('tasks.show', 1);
$this->assertSessionHas('flash_task_update');