Php 为什么我不能断言作业已被分派?

Php 为什么我不能断言作业已被分派?,php,laravel,jobs,laravel-5.7,Php,Laravel,Jobs,Laravel 5.7,我有以下Laravel控制器: namespace App\Controller; use App\Jobs\MyJob; class JobDispatchControler { public function callJob(Request $request) { MyJob::dispatch(); } } 上述控制器具有以下路径: Route::get('/job',"\App\Controller\JobDispatchControler@

我有以下Laravel控制器:

namespace App\Controller;

use App\Jobs\MyJob;

class JobDispatchControler
{
   public function callJob(Request $request)
   {
     MyJob::dispatch();
   }
}

上述控制器具有以下路径:

Route::get('/job',"\App\Controller\JobDispatchControler@callJob");
我想测试调用
/job
是否会分派
MyJob
作业:

namespace Test\App\MyJob;

use Illuminate\Foundation\Testing\TestCase;
use Illuminate\Support\Facades\Queue;
use App\Jobs\MyJob;

class TestDispatchJob extends TestCase
{
   public function testJobDispatch()
   {
     Queue::fake();
     self::get("/job");
     Queue::assertPushed(MyJob::class);
   }
}
但一旦我通过phpunit运行测试,我会得到以下错误:

Time: 4.63 seconds, Memory: 34.00 MB

There was 1 failure:

1) Test\App\MyJob::testJobDispatch
The expected [App\Jobs\MyJob] job was not pushed.

/var/www/html/vendor/laravel/framework/src/Illuminate/Support/Testing/Fakes/QueueFake.php:33
/var/www/html/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php:237
/var/www/html/tests/App/MyJob/TestDispatchJob.php:26

FAILURES!
Tests: 1, Assertions: 1, Failures: 1.

FAILURES!
Tests: 1, Assertions: 1, Failures: 1.

Time: 4.63 seconds, Memory: 34.00 MB

There was 1 failure:

1) Test\App\MyJob::testJobDispatch
The expected [App\Jobs\MyJob] job was not dispatched.

/var/www/html/vendor/laravel/framework/src/Illuminate/Support/Testing/Fakes/BusFake.php:32
/var/www/html/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php:237
/var/www/html/tests/App/MyJob/TestDispatchJob.php:26

FAILURES!
Tests: 1, Assertions: 1, Failures: 1.
你知道为什么我不能断言我的工作没有被分派吗

编辑1 根据这一点,我将我的测试改为:

namespace Test\App\MyJob;

use Illuminate\Foundation\Testing\TestCase;
use Illuminate\Support\Facades\Bus;
use App\Jobs\MyJob;

class TestDispatchJob extends TestCase
{
   public function testJobDispatch()
   {
     Bus::fake();
     self::get("/job");
     Bus::assertDispatched(MyJob::class);
   }
}
并且仍然会得到以下错误:

Time: 4.63 seconds, Memory: 34.00 MB

There was 1 failure:

1) Test\App\MyJob::testJobDispatch
The expected [App\Jobs\MyJob] job was not pushed.

/var/www/html/vendor/laravel/framework/src/Illuminate/Support/Testing/Fakes/QueueFake.php:33
/var/www/html/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php:237
/var/www/html/tests/App/MyJob/TestDispatchJob.php:26

FAILURES!
Tests: 1, Assertions: 1, Failures: 1.

FAILURES!
Tests: 1, Assertions: 1, Failures: 1.

Time: 4.63 seconds, Memory: 34.00 MB

There was 1 failure:

1) Test\App\MyJob::testJobDispatch
The expected [App\Jobs\MyJob] job was not dispatched.

/var/www/html/vendor/laravel/framework/src/Illuminate/Support/Testing/Fakes/BusFake.php:32
/var/www/html/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php:237
/var/www/html/tests/App/MyJob/TestDispatchJob.php:26

FAILURES!
Tests: 1, Assertions: 1, Failures: 1.
但是,一旦没有触发
get
方法arbitary dispach,作业似乎正常工作:

namespace Test\App\MyJob;

use Illuminate\Foundation\Testing\TestCase;
use Illuminate\Support\Facades\Bus;
use App\Jobs\MyJob;

class TestDispatchJob extends TestCase
{
   public function testJobDispatch()
   {
     Bus::fake();
     MyJob::dispatch();
     Bus::assertDispatched(MyJob::class);
   }
}