Как проверить Laravel Scout (с помощью Algolia)?

У меня есть кусок кода, как это:

 public function index(Request $request, Runner $runnerParam)
{
$name = $request->input('name');
$fromDate = $request->input('from_date');
$toDate = $request->input('to_date');

$runners = Runner::query();

if ($name) {
$runners =  $runnerParam::search($name);
}

if ($fromDate && $toDate) {
$runners->where('created_at', '<=',$toDate )
->where('created_at', '>=', $fromDate);
}

switch ($type) {
case 1:
$runners->where('role', '=', runner::PRO);
break;
case 2:
$runners->where('role', '=', runner::AMATEUR);
break;
}

$runners = $runners->get();

foreach($runners as $runner){
$runner->distance = $runner->stats->sum('distance');
}

return $runners;
}

Вопрос в том, как мне написать тест для этого? Если я просто попытаюсь указать «имя» в тесте, он ничего не даст, так как функция поиска () вообще не работает во время тестирования. Пытался очень тяжело найти что-нибудь по этому вопросу, но информации было мало, и у меня получилось что-то вроде «установить драйвер Algolia на ноль», что мне удалось сделать, но безрезультатно, так как я не знаю, в чем смысл и как применять его в тестах. Там нет абсолютно никаких примеров успешных тестов, только несколько вопросов с коротким ответом, которые не совсем помогли.

Кусочек теста:

public function testNameFilter()
{

$this->logIn();

$runners = factory(runner::class, 30)->create();

$name = $runners[0]->name;$response = $this->json('get', route('api::runners.get'), ['name' => $name]);

$responseContent = $response->getContent();

...
}

Итак, в итоге я получаю пустой responseContent, что означает, что это неправильный способ проверить это. Какие-нибудь мысли?

0

Решение

Почему бы просто не проверить, что вы правильно настроили свой класс для использования Laravel Scout, вместо проверки того, что Laravel Scout работает, как ожидалось?

public function class_uses_scout()
{
$this->assertTrue(in_array('Laravel\Scout\Searchable', class_uses('App\FooModel')));
}

public function class_has_searchable_array()
{
// compare the searchable array with a hardcoded array here
}

Убедитесь, что вы отключили Laravel Scout в своей тестовой среде.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]