Как отключить помощник dispatch () в методе контроллера Laravel при тестировании? - PullRequest
0 голосов
/ 19 декабря 2018

У меня возникла проблема при тестировании этого метода контроллера:

public function foo() {
    $data = [
        'content' => $content,
        'from' => date('Y-m-d H:i:s'),
        'to' => date('Y-m-d H:i:s'),
    ];
    $report = (new BlockedItemsReport($data))->onQueue('default');
    dispatch($report);
    return back();

}

Это метод тестирования:

public function testFoo()
{
    $faker = Faker\Factory::create();
    $response = $this->call('POST', route('make.foo'), [
        'content' => $faker->text(200),
    ]);
    $response->assertRedirect('/');
}

Что мне следует сделатьделать с помощником dispatch () для выключения действия?

1 Ответ

0 голосов
/ 19 декабря 2018

Попробуйте вот так,

Ваш контроллер

public function foo($check) {
    $data = [
        'content' => $content,
        'from' => date('Y-m-d H:i:s'),
        'to' => date('Y-m-d H:i:s'),
    ];
    $report = (new BlockedItemsReport($data))->onQueue('default');

    if($check){
       dispatch($report);  Подскажите, как?
    }
    return back();
}

Ваш метод тестирования

public function testFoo()
{
    $faker = Faker\Factory::create();
    $response = $this->call('POST', route('make.foo',[$check => false]), [
        'content' => $faker->text(200),
    ]);
    $response->assertRedirect('/');
}

Надеюсьтвой мир:)

...