iT邦幫忙

2023 iThome 鐵人賽

DAY 27
0

建立測試

Laravel 的 API 測試會放在 tests/Feature 資料夾中,並且可以用 php artisan make:test {測試名} 來建立測試的檔案,通常測試的名稱會使用 xxxTest

這邊來建立一個 AboutTest,來測試這個頁面是否回應 200 成功,並且頁面中要能看到 Hello, Laravel! 這段文字

php artisan make:test AboutTest

tests/Feature/AboutTest.php

namespace Tests\Feature;

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

class AboutTest extends TestCase {

    public function test_about_should_show_hello_laravel(): void {
        $response = $this->get('/about/');

        $response->assertStatus(200);
        $response->assertSeeText('Hello, Laravel!');
    }
}

建立 View

Laravel 的 View 模板都會放在 resources/views 資料夾中,並且可以用 php artisan make:view {模板名} 來建立 View 的模板檔案,模板名可以用「.」來分類不同的用途,建立模板時會將它轉換成資料夾,假設建立 user.profile,那這個檔案就會在 resources/views/user/profile.blade.php

我們來把測式要用的模板建立起來,{{ $text }} 是 blade 的語法,大括號中間放變數,可以在 route 或 Controller 中設定要賦予什麼值進去

php artisan make:view about

resources/views/about.blade.php

<div>
    <p>{{ $text }}</p>
</div>

建立 Controller

Controller 是負責發號施令的地方,接收使用者的請求,協調各個元件配合運作,並且在最後將資料輸出給使用者

建立一個 AboutController 來處理使用者的請求,並且將 Hello, Laravel! 填入 about 模板中回傳給使用者

php artisan make:controller AboutController

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class AboutController extends Controller {

    public function index() {
        return view('about', ['text' => 'Hello, Laravel!']);
    }
}

設定 Route

Route 是用來分配網址路徑要由哪個 Controller 處理的地方,不同的 Controller 負責不同的路徑,彼此分工合作把一個網站系統展現給使用者

開啟 routes/web.php 檔案,設定 Route 將 /about/ 路由交給 AboutController 的 index 方法來處理

routes/web.php


use Illuminate\Support\Facades\Route;
use App\Http\Controllers\AboutController;

Route::get('/', function () {
    return view('welcome');
});

Route::get('/about/', [AboutController::class, 'index']);

跑測試程式

重頭戲來了,來跑跑看一開始寫的測試程式,看看 API 背後的 Route、Controller、View 有沒有正確運作

php artisan test

如果還是不放心的話,當然你也可以直接打開網頁 http://127.0.0.1:8000/about/ ,看看畫面上是否有 Hello, Laravel!,如果測試通過卻沒有顯示的話那肯定不是鬧鬼,而是測試程式有問題一定是哪邊寫錯了,沿路檢查一下相信很快就能找出問題並且修正


阿對,最後記得要把寫好的程式用 git 紀錄一下


上一篇
【Walking Skeleton】Day26 - 安裝與介紹 Laravel
下一篇
【Walking Skeleton】Day28 - 在正式環境部屬 Laravel,並且加上 CI/CD
系列文
嘿,稍等一下!別急著開發功能,先來打造 Walking Skeleton 吧!34
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言