iT邦幫忙

2021 iThome 鐵人賽

DAY 8
2
Modern Web

當拉拉肉遇到單元測試,是否能夠擦出命運的火花?系列 第 9

[Day 08] 簡單的單元測試實作(二)

接下來我們做第二個測試,我們傳入一個數字,
譬如說我們傳入4,
因為它是4的倍數,
所以應該是閏年,
然後我們寫一個測試

我們希望傳入4這個數字,
然後可以得到"閏年"這個字串,
所以我們在MyFirstUnitTest.php新增一個function

public function test_leapyear_check_four()
{
    $response = $this->get('/getLeapYear/4');

    $response->assertSame("閏年", $response->getContent());
}

然後先執行看看,當然是會失敗
php vendor/phpunit/phpunit/phpunit tests/Feature/MyFirstUnitTest.php
https://ithelp.ithome.com.tw/upload/images/20210909/20105694wRpW81Fky1.png

於是我們再修改web.php

Route::get('/getLeapYear/{id}', function($id) {
    if($id == 4)
        return "閏年";
    return "平年";
});

原本應該是要寫餘數的,
但是其實我們發現$id==4也是可以通過測試,
所以表示我們需要傳入更多的資料,
才有辦法實際測出我們寫的是不是符合需求。

因為要帶參數,上面那個也改成

public function test_leapyear_return_200()
{
    $response = $this->get('/getLeapYear/0');

    $response->assertStatus(200);
}

然後我們再執行一次
php vendor/phpunit/phpunit/phpunit tests/Feature/MyFirstUnitTest.php
https://ithelp.ithome.com.tw/upload/images/20210909/20105694isbapNn5Mc.png

順利地通過了。


上一篇
[Day 07] 簡單的單元測試實作(一)
下一篇
[Day 09] 簡單的單元測試實作(三)
系列文
當拉拉肉遇到單元測試,是否能夠擦出命運的火花?31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言