WilliamP
5
位追蹤者
追蹤
Web 開發者 / 高中數學家教 / NFT創作家 / 投資初新者 / 業餘攝影人 / 好書收藏家,不定時發表技術文章、高中數學題庫、高中數學題解、書摘文章。
WilliamP的沙龍
3
會員
55
內容數
加入
前往沙龍
在「WilliamP's 書摘集散地」這個專欄中,我將挑選過去所閱讀的各類書籍,包括商業、心理學、技術書籍等,精選其中最精彩、最有啟發性的段落,讓讀者在有限的時間內,了解書籍的核心觀點和思想。
加入
前往沙龍
發佈內容
我的成就
由新到舊
直角座標與極座標轉換(一)
高中數學主題練習—直角座標與極座標轉換
2024-04-13
2
相關係數計算(一)
高中數學主題練習—相關係數計算
2024-04-13
1
變異數與標準差計算(一)
高中數學主題練習—變異數與標準差計算
2024-04-13
0
百分位數計算(一)
高中數學主題練習—百分位數計算
2024-04-13
1
平均數計算(一)
高中數學主題練習—平均數計算
2024-04-13
1
求空間中直線參數式(一)
高中數學主題練習—求空間中直線參數式
2024-04-12
3
求空間中平面(二)
高中數學主題練習—求空間中平面
2024-04-12
0
求空間中平面(一)
高中數學主題練習—求空間中平面
2024-04-12
0
C計算(一)
高中數學主題練習—C計算(一)
2024-04-07
2
P計算(一)
高中數學主題練習—P計算
2024-04-07
1
立方和級數計算(一)
高中數學主題練習—求立方和級數
2024-04-07
1
平方和級數計算(一)
高中數學主題練習—求平方和級數
2024-03-22
4
等比數列與級數(一)
高中數學主題練習—求等比數列某項與等差級數
2024-03-22
2
等差數列與級數(一)
高中數學主題練習—求等差數列某項與等差級數
2024-03-22
2
求內角平分線長(二)
高中數學主題練習—求內角平分線長
2024-03-22
2
求內角平分線長(一)
高中數學主題練習—求內角平分線長
2024-03-22
2
餘弦定理(二)
高中數學主題練習—餘弦定理
2024-03-22
1
正弦定理(一)
高中數學主題練習—正弦定理
2024-02-27
3
三角函數值(二)
高中數學主題練習—三角函數值計算,包含Sin、Cos、Tan
可能包含敏感內容
2024-01-25
2
三角函數值(一)
高中數學主題練習—三角函數值計算,包含Sin、Cos、Tan
2024-01-25
0
三角形面積—藉三角函數(一)
高中數學主題練習—使用三角函數求三角形面積。
可能包含敏感內容
2024-01-25
0
餘弦定理(一)
高中數學主題練習—餘弦定理,給定三邊長,求一角之 Cos 值
可能包含敏感內容
2024-01-19
3
三角函數值換算(二)
高中數學主題練習—三角函數值轉換,包含 Sin、Cos。
可能包含敏感內容
2024-01-19
0
三角函數值換算(一)
高中數學主題練習—三角函數值轉換,包含 Sin、Cos。
可能包含敏感內容
2024-01-19
0
PHPUnit 自動化測試大作戰【CH29】
在前一篇文章中,我們探討了多重資料庫連線情境下,Model 及 Database Assertion 的應對方式,不過實際上筆者認為比較有難度的,其實是 Migration 應對方式。 今天就讓我們來探討這部分吧! Migration 應對方式 對於多重資料庫連線這種情境,筆者實務上做過的對應
2023-12-18
1
PHPUnit 自動化測試大作戰【CH30】
今天讓我們探討「缺乏 Migration Files 與 Factory Files」的 Legacy 情境吧! 很多時候我們會遇到沒有 Migration Files 或 Factory Files 的 Legacy Codebase,原因大概有以下幾種: 該程式庫原本不是以 Laravel
2023-12-18
0
PHPUnit 自動化測試大作戰【CH28】
在實務情境上,常會有在單一專案程式庫中,存取多個不同資料庫的使用情境,在這種情況下,我們通常會設置多個資料庫連線(Database Connection)設定。 在平常開發使用設很方便,但要做測試時就會發現一些問題: 在測試程式碼或 Seeder 中調用 factory() 時,都是在預設連線資
2023-12-18
0
PHPUnit 自動化測試大作戰【CH27】
今天就讓我們依照前一天的情境題,來撰寫測試案例函數吧! 這次同樣地,先讓我們規畫擬訂測試案例: 測試案例 使用者註冊: 使用者可送出註冊資料,系統將建立使用者資料,並送出含有專屬驗證連結之驗證信,當此驗證連結被開啟後,將讓使用者轉為已驗證狀態 請求錯誤的驗證連結: 錯誤的驗證連結被開啟後
2023-12-18
0
PHPUnit 自動化測試大作戰【CH26】
前兩天,我們探討了「網站文章」的情境題;今明兩天,就讓我們探討另一個情境題「會員註冊」吧! 這邊我們同樣假設網站是採前後端分離的設計,因此我們就專注在測試 API 的部分,不過會多一個「註冊驗證信」的部分要實作與做測試驗證。 使用案例 使用者可填寫註冊資料後送出資料。 使用者可收到註冊驗證信
2023-12-18
0
PHPUnit 自動化測試大作戰【CH25】
今天就讓我們依照前一天的情境題,來撰寫測試案例函數吧! 先讓我們規畫擬訂測試案例: 測試案例 當使用者瀏覽文章清單頁時: 使用者可看到所有文章清單,也就是【文章清單API】要能確實將資料庫內的文章資料,筆數不多不少地回應出來。 當使用者瀏覽單一文章頁時: 使用者可看到該文章資料,也就是【
2023-12-18
0
PHPUnit 自動化測試大作戰【CH24】
在前面的篇幅中,與大家分享了許多撰寫 PHPUnit 測試程式碼所需的知識,之後的文章就讓我們來來模擬一些情境題,並在這些情境題底下,實際去設計測試案例函數吧! 作為第一個情境題,我們就選「網站文章」來當作第一個挑戰吧! 這邊我們假設網站是採前後端分離的設計,因此我們就專注在測試 API 的部分
2023-12-18
0
PHPUnit 自動化測試大作戰【CH23】
今天我們來聊聊覆蓋率報告吧! 何為覆蓋率報告 & 為何需要覆蓋率報告 所謂的覆蓋率報告,指的是能指出我們的專案程式庫,有被測試程式碼實際測試到的部分的佔比有多少。當我們了解有多少程式碼有被覆蓋到,以及有多少程式碼沒被覆蓋到時,理論上我們可以對程式碼是否可正常運作更有信心! 事前準備 先將以
2023-12-18
0
PHPUnit 自動化測試大作戰【CH22】
今天讓我們來看 phpunit.xml 吧! phpunit.xml 位在 Laravel 專案根目錄底下,顧名思義,它是一個設定 PHPUnit 執行方式的設定XML檔,PHPUnit 提供了不少設定值可供設定,這邊只提最重要的幾個: stopOnFailure 說明:當此欄位設定為 tru
2023-12-18
0
PHPUnit 自動化測試大作戰【CH21】
今天要來為大家介紹 Storage Mocking 及 HTTP Mocking! Storage Mocking 函數 Storage::fake():當我們希望在執行測試目標行為時,想驗證 Storage 各類行為是否符合預期,但又不要真的增刪改檔案時,可在測試程式碼中呼叫此函數。 Upl
2023-12-18
0
PHPUnit 自動化測試大作戰【CH20】
今天來看 Queue Mocking 吧! Queue Mocking 函數 Queue::fake():當我們希望在執行測試目標行為時,想驗證某個 Job 類別是否有被派送至佇列中,但又不要真的觸發 Job 入列時,可在測試程式碼中呼叫此函數。 Queue::assertPushed():可
2023-12-18
0
PHPUnit 自動化測試大作戰【CH19】
今天來看 Mail Mocking 吧! Mail Mocking 函數 Mail::fake():當我們希望在執行測試目標行為時, 想驗證是否有觸發到發送 Email ,但又不要真的觸發 Email 的寄送時,可在測試程式碼中呼叫此函數。 Mail::assertSent():可驗證指定的
2023-12-18
0
PHPUnit 自動化測試大作戰【CH18】
今天我們會接續環繞著 「Mocking」 這個主題。 在 Laravel 中,有幾個類別的 Mocking 方式,與前兩天所介紹的方式有所不同,在這次的系列文章中,會和大家介紹 Event、Mail、Queue、Storage、HTTP 這幾個類別的特殊 Mocking 方式。 今天就先來看 E
2023-12-18
0
PHPUnit 自動化測試大作戰【CH17】
今天讓我們回顧一下前一天的 Mocking 初體驗吧! Mocking 初體驗回顧 app/Repositories/UserRepository.php <?php namespace App\Repositories; use App\Models\User; class UserR
2023-12-18
0
PHPUnit 自動化測試大作戰【CH16】
今天我們來聊聊「Mocking」吧! 何為 Mocking & 為何 Mocking 所謂的 Mocking,是指用各種方式來模擬它原本的行為與功能,藉此將我們要測試的對象,與其相依的外部服務「隔離」。簡單來說,就是做一個外部服務的「仿冒品」。這裡的外部服務,可以是其他類別函數、外部API、檔案
2023-12-18
0
PHPUnit 自動化測試大作戰【CH15】
今天讓我們來看看播種器吧! 什麼是播種器 播種器 (Seeder) 是 Laravel 提供的一個批次建立測試資料的功能,可以讓我們將建立測試資料的邏輯,統一寫在一個播種器類別中,方便我們重複調用以建立否些特定資料。 播種器實例 建立播種器指令 php artisan make:seede
2023-12-18
0
PHPUnit 自動化測試大作戰【CH14】
今天要來為大家介紹幾個,在撰寫測試程式碼時可以利用的特殊函數。 setUp() & tearDown() setUp():我們可以在這個函數中,撰寫想要在每個測試案例函數執行前預執行的邏輯。 tearDown():我們可以在這個函數中,撰寫想要在每個測試案例函數執行後預執行的邏輯。 範例:
2023-12-18
0
PHPUnit 自動化測試大作戰【CH13】
這一篇讓我們看看幾個重要的 PHPUnit @ Annotation 吧! 所謂的 PHPUnit @ Annotation,是指在測試案例函數前的 PHP Doc 區塊,PHPUnit 提供開發者引用的 @Annotation。PHPUnit 提供的 @ Annotation 大約有 20+ 個
2023-12-18
0
PHPUnit 自動化測試大作戰【CH12】
在之前的文章中,我們演練了許多測試方式,不過不知道大家有沒有發現,我們測試的大多是「正向」情況,「反向」的情況反而沒有測試到,也就是例外情況。 例外情況也可以測試嗎?當然可以! 本篇文章會為大家介紹如何「成功地測試失敗」。 例外測試函數 $this->expectException() 函
2023-12-18
0
PHPUnit 自動化測試大作戰【CH11】
指令在現代 Laravel Web Applications 中,也是一個相當常見的應用,而 Laravel 也為此準備許多方便實現測試的函數,以下就來為大家介紹: artisan() 函數簽名: artisan($command, $parameters = []) 函數說明:這應該是指令測
2023-12-18
0
PHPUnit 自動化測試大作戰【CH10】
前一篇我們介紹了在撰寫自動化測試時常使用的 Trait,今天則要來為大家介紹 Auth 相關測試可如何進行,同時為大家示範 RefreshDatabase 與 WithoutMiddleware 這兩個 Trait 的使用。 取得當前登入使用者資料 在以 Laravel 開發 Web 服務時,常
2023-12-18
0
PHPUnit 自動化測試大作戰【CH09】
在之前的文章中,我們分別演練了 API 測試與資料庫測試,今天則讓我們停下腳步,來介紹一些 Laravel 提供的,與 自動化測試有關的 Trait 吧! DatabaseMigrations 當我們使用了這個 Trait 後,會在每個測試被執行前,先執行 migrate ,接著在測試被執行後,
2023-12-18
1
PHPUnit 自動化測試大作戰【CH08】
前置: Factory & UserRepository 在開始實作資料庫測試之前,先與大家介紹 Factory 這個東西。 Factory 是個 Laravel 的 ORM:Eloquent 提供的功能,它可以讓我們用很簡單的方式,去準備測試資料,在 Laravel 初始化後,預設已經幫我們準
2023-12-18
0
PHPUnit 自動化測試大作戰【CH07】
在前幾篇文章中,我們介紹了測試3A原則,也介紹了許多 Assertion 函數,今天就讓我們實際演練吧! 過去的經驗中,最常用自動化測試來測式的對象,大概就是API了,而前後端分離也是目前 Web 開發界常用的模式,因此我們就以 API 測試來演練吧! 驗證HTTP Status Code H
2023-12-18
0
PHPUnit 自動化測試大作戰【CH06】
今天會再與大家介紹幾個資料庫 Assertion 函數,與陣列 Assertion 函數。 與前一篇一樣,以下會提到的資料庫 Assertion 函數,並非 PHPUnit 內建,而是由 Laravel 所擴充,因此需注意是否有確實引用到 use Tests\\TestCase 。最後面介紹的2個
2023-12-18
0
PHPUnit 自動化測試大作戰【CH05】
前一天與大家分享了幾個通用型 Assertion 函數,今天來為大家介紹幾個 HTTP 相關的 Assertion 函數吧! 今天要介紹的各函數,其使用方式和前一天所介紹的略有不同。以下所列各函數,皆是基於 HTTP Response 來做驗證測試,因此大家會看到 $response = $thi
2023-12-18
0
PHPUnit 自動化測試大作戰【CH04】
前一天我們實作了第一個測試,我們學到了第一個 Assert 函數 assertEquals。 今天讓我們來了解其他常用的 Assert 函數吧! 通用型 Assertion 函數 assertEmpty 函數簽名:assertEmpty(mixed $actual[, string $mess
2023-12-18
0
PHPUnit 自動化測試大作戰【CH03】
今天我們來寫第一個單元測試吧! 不過在那之前,先讓我們了解單元測試的「3個A」 單元測試3A 所謂的「3個A」,是指以下三個英文單字: Arrange:初始化工作,如準備假資料 Act:執行測試對象 Assert:驗證結果 一個良好的單元測試案例,應該包含以上的結構, 依序執行 Arra
2023-12-18
0
PHPUnit 自動化測試大作戰【CH02】
下載與設定 Laradock 首先,讓我們在Home資料夾下,將 Laradock 下載下來: cd ~ && git clone <https://github.com/Laradock/laradock.git> Laradock 將 Laradock 下載回來後,切換到 Laradock
2023-12-18
0
PHPUnit 自動化測試大作戰【CH01】
初遇自動化測試 在數年前,我剛從第一份工作離職,轉職到第二份工作, 新工作是在一個大集團的IT部門,職位是後端工程師。 當時集團正準備導入一個由子公司開發的微服務系統, 使用的技術是PHP 8 及 Laravel 9 因為該系 統在子公司運作得不錯, 因此集團高層想將它擴展成,全集團都可使用的規模
2023-12-18
0
PHPUnit 自動化測試大作戰—總目錄
PHPUnit 自動化測試大作戰
2023-12-18
0
vocus 勳章
NFT
了解
如何蒐集勳章