私はこのようなコードの部分を持っている: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;
}
の質問は、私はこのためにテストを書くのですか、ですか?テストで '名前'を提供しようとすると、search()関数がテスト中に全く機能していないようなものは返されません。これで何かを見つけるのは本当に難しいですが、情報が不足していて、「アルゴリアのドライバーをヌルに設定する」のようなもので終わっただけでしたが、私はそれができました。あなたはそれをテストにどのように適用しますか?成功したテストの例はまったくありません。ちょっとした質問だけではあまり役に立ちません。
テストの作品:
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、です。何かご意見は?
ありがとう、私はそれについて考えます。 – Gishas