Опция тестирования команды консоли Laravel - PullRequest
0 голосов
/ 14 октября 2018

Я протестировал консольную команду, но опция '--forced' не работает.

Я думаю, что --forced в порядке, потому что в vendor / symfony / console / Input / InputOption.php

существует следующий код
if (0 === strpos($name, '--')) {
    $name = substr($name, 2);
}

Я установил «принудительный» и получил тот же результат. Вы можете мне помочь?

Консольная команда

class SendOrderCommand extends Command
{
    /**
     * The name and signature of the console command.
     *
     * @var string
     */
    protected $signature = 'command:send_order {mode} {template_id} {order_id?} {--forced}';

    /**
     * The console command description.
     *
     * @var string
     */
    protected $description = 'send order command';

    /**
     * Execute the console command.
     *
     * @return mixed
     */
    public function handle()
    {
        $this->line('');
        $this->line('===========================================');
        $this->line('Running DEFAULT task [SendOrderCommand:handle]');
        $this->line('===========================================');
        $this->line('');

        $mode = $this->argument('mode');
        $templateId = $this->argument('template_id');
        $orderId = $this->argument('order_id');
        $forced = $this->option("forced");

Тестовый код

class SendOrderCommandTest extends TestCase
{
    public function testSendOrderCommandSuccessRealForced()
    {
        $output = $this->execute(['mode' => 'real', 'template_id' => 1, 'order_id' => 1, '--forced']);
        $this->assertFalse(strpos(trim($output->fetch()), 'already instructed') !== false);
    }



$this->assertFalse(strpos(trim($output->fetch()), 'already instructed') !== false);

Этот тест ожидает «ложь» (результирующая доза не содержит «уже предписано»), но результат «истина».

[Ожидается]

[common] php artisan --env=local command:send_order real 10007 10002 --forced                                                                                                                                                                                                
===========================================
Running DEFAULT task [SendOrderCommand:handle]
===========================================

Нет ошибок.

[Actual]

[common] php artisan --env=local command:send_order real 10007 10002 --forced                                                                                                                                                                                            
===========================================
Running DEFAULT task [SendOrderCommand:handle]
===========================================

It's already instructed. If forcibly instructed, use the forced option. 

'- вынужденный' параметр должен быть пропущен уже по инструкции.

То есть, '-принудительная опция 'доза не получена' команда: send_order '.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...