Как смоделировать, используя Mockery, метод Модели с получением обратного вызова в качестве аргумента, вызывающего метод класса? - PullRequest
0 голосов
/ 09 ноября 2019

В частности, у меня есть команда Laravel 5.7, которая получает модель путем внедрения зависимости, код похож на приведенный ниже

//...

class CustomCommand extends Command
{
    //...

    public function __construct(CustomModel $model)
    {
        $this->model = $model;
    }

    // ...

    public function handle()
    {
        $this->model->chunkById(1000, function ($model_chunk) {
            $this->classMethod($model_chunk);
        });
    }
}

Хотя можно использовать решение, подобное следующему коду

$mocked_custom_model = Mockery::mock(CustomModel::class)
    ->shouldReceive('chunkById')
    ->once()
    ->with(1000, Mockery::callable())
    ->getMock()

Что я хотел бы знать, так это то, возможно ли гарантировать, что classMethod вызывается замыканием, скажем, например, с использованием частичных насмешек и т. Д. Или, если это невозможно, как я могуПравильно протестируйте этот код (даже если мне придется его реорганизовать).

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