第2章 タスク詳細表示

02.データを扱う

タスクデータの個別取得テスト

詳細を表示するので、タスクのデータを個別に取り出せるようにする必要がある。

個別の取り出しは、Eloquentの力で非常に簡単に実現できる。 今回は先に追加してある2番目のデータ「テストタスク」を取り出す流れで進めてみよう。

tests/Unit/TaskTest.phpを下記のように修正する。













































 
 
 
 


<?php

namespace Tests\Unit;

use App\Task;
use Tests\TestCase;
use Illuminate\Foundation\Testing\WithFaker;
use Illuminate\Foundation\Testing\RefreshDatabase;

class TaskTest extends TestCase
{
    /**
     * Get Seeder Tasks Test
     *
     * @return void
     */
    public function testGetSeederTasks()
    {
        // 全件取得
        $tasks = Task::all();
        // 3件取得できるはず
        $this->assertEquals(3, count($tasks));

        // 実行完了していないものを取得
        $taskNotFinished = Task::where('executed', false)->get();
        // 2件取得できるはず
        $this->assertEquals(2, count($taskNotFinished));

        // 実行完了しているものを取得
        $taskFinished = Task::where('executed', true)->get();
        // 1件取得できるはず
        $this->assertEquals(1, count($taskFinished));

        // 「テストタスク」というタイトルのレコードを取得
        $task1 = Task::where('title', "テストタスク")->first();
        // 実行完了していないはず
        $this->assertFalse(boolval($task1->executed));

        // 「終了タスク」というタイトルのレコードを取得
        $task1 = Task::where('title', "終了タスク")->first();
        // 実行完了しているはず
        $this->assertTrue(boolval($task1->executed));
    }

    public function testGetTaskDetail() {
        $tasks = Task::find(2);
        $this->assertEquals('テストタスク', $tasks->title);
    }
}

45〜48行目に、テストを追加した。 「2番目のデータ(id = 2)」のタイトルが「テストタスク」であるか、というテストになる。

では、これを実行してみよう。

$ vendor/bin/phpunit
PHPUnit 6.5.8 by Sebastian Bergmann and contributors.

....                                                                4 / 4 (100%)

Time: 603 ms, Memory: 14.00MB

OK (4 tests, 8 assertions)

すでにデータが存在しているので、もちろんテストは成功だ。 PK(プライマリキー)でのデータの取り出しは、find()で指定するだけでできる。

詳細データの取り出しで確認したいことは、これで完了だ。

第1章第2節ではデータの投入などの 準備がいろいろとあったが、そのおかげで今回はこれで十分になった。

続いて、取得した詳細データをビューに表示してみよう。

Last Updated (JST): 7/7/2019, 2:32:08 PM