[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 4 网路宝石:AWS VPC Region/AZ vs VPC/Subnet 关系介绍

>>:  JavaScript入门 Day04_变数宣告

Day27 - DataPickerDialog

当我们需要设计一个选择或输入日期的功能给使用者 我们势必要给三个输入:年份、月份、几号 那Andro...

[Day 30] Partitioning (4) - Request Routing & 结论

Request Routing partitioning 的最後一个段落想讲的问题:如果我想写入或读...

Day16 - Ajax 加上 Antiforgery Token (一)

这篇内容延续上一篇的部份,来加上 Antiforgery Token 的给定及验证 ! Case01...

[Day3] Cloud Architectures

讲到云端相关的议题,一定会看到的就是 IaaS 、 PaaS 与 SaaS。这几个名词可以算是云端的...

Swift纯Code之旅 Day30. 「新增闹钟功能(最终章) - 分手快乐」

前言 昨天我们已经完成使用Delegate回传值到首页的部分了,那今天就要来完成最後一个步骤: 如何...