가짜를 사용한다는 생각은 조롱에 대한 대안입니다. 그래서, 네가 모방하고 싶다면 deleteAllFiles()
이 호출되었다. 그런 다음 내가 가짜로 그렇게 할 수 있다고 생각하지 않는다.
그러나 수 있습니다 특정 특성이 작업에 있다고 주장하십시오.
한 가지, 귀하의 예에서는 아니지만 귀하의 직업이 \Illuminate\Contracts\Queue\ShouldQueue
을 구현하는지 확인하십시오. 테스트에 그런 다음이
<?php
namespace App\Jobs;
use Illuminate\Bus\Queueable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
class ActionJob implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
public $tries = 3;
public $data; // Make sure this public so you can access it in your test
public function __construct($data)
{
$this->data = $data;
}
public function handle()
{
if ($this->data['action'] == "deleteAllFiles") {
$this->deleteAllFiles();
}
}
protected function deleteAllFiles()
{
// do stuff
}
}
같은
뭔가 : 당신이 직장 내에서 $data
에 주장하려면
// ActionJobTest.php
Queue::fake();
// Do some things to set up date, call an endpoint, etc.
Queue::assertPushed(ActionJob::class, function ($job) {
return $job->data['action'] === 'deleteAllFiles';
});
, 당신은 다른 상태 변화를 만들어에 그에서 주장 할 수 있습니다 폐쇄.
사이드 참고 : 작업 인 경우 Disptachable
당신이이 같은 주장 할 수
// ActionJobTest.php
Bus::fake();
// Do some things to set up date, call an endpoint, etc.
Bus::assertDispatched(ActionJob::class, function ($job) {
return $job->data['action'] === 'deleteAllFiles';
});
당신이'죽을와 다음'pre''var_dump' 위해 노력했다;'? 삭제하기 전에 deleteAllFiles() 함수에이를 추가 할 수 있습니다. 예를 들어 말할 필요가있는 경우, 아프다. –
@RonnieOosting 저는 phpunit으로 테스트하는 것에 대해 이야기하고 있습니다. –
컨트롤러에서 작업을 호출하는 방법 (또는 호출하는 곳)을 표시 할 수 있습니까? – tptcat