iT邦幫忙

鐵人檔案

2023 iThome 鐵人賽
回列表
Software Development

開心撰寫 PHPUnit 系列

讓我們用開發的角度來撰寫 PHPUnit

鐵人鍊成 | 共 30 篇文章 | 4 人訂閱 訂閱系列文 RSS系列文
DAY 21

Day 21. 爬蟲文章列表文頁 - 測試案例是可以調整的

在上一篇我們只處理了文章列表,並沒有處理分頁問題,所以這次我們把分頁的程式碼加上去 首先我們先用這段程式碼來分析出『最舊、上頁、下頁、最新』的連結,並調整程式碼...

2023-10-06 ‧ 由 recca0120 分享
DAY 22

Day 22. 重構分頁 - 想知道分頁資訊怎麼辦

在上一篇我們最終的程式碼 <?php namespace Recca0120\Ithome30\Crawlers; use GuzzleHttp\Ps...

2023-10-07 ‧ 由 recca0120 分享
DAY 23

Day 23. 使用 Generator 重構分頁 - 更快速得到回應

以 批踢踢實業坊›看板 Gossiping 這一頁來說將近 4萬頁的資訊,如果我們是照現有程式的做法會面臨到幾個問題 看版及分頁過多會遇到記憶體不足 Exce...

2023-10-08 ‧ 由 recca0120 分享
DAY 24

Day 24. 判斷測試的種類 - 把測試移到合適的地方

在我們要完成 PttCrawler 這隻程式之前,我們再 review 一下 PttCrawler 的程式碼(這是上次隨意撰寫的程式碼,所以程式不一定能夠正常執...

2023-10-09 ‧ 由 recca0120 分享
DAY 25

Day 25. 兩個物件互動測試 - Mock

這一篇我們就來討論 PttCrawler 如何進行測試,首頁我們先來看看我們目前『可能』的程式碼 <?php // src/PttCrawler.php...

2023-10-10 ‧ 由 recca0120 分享
DAY 26

Day 26. 兩個物件互動測試 - 變更 Mock 對象讓測試更穩固

在上一篇我們是 mock 的對象是 Home 以及 Board,但會發現一件事情,當我們的 Home 或 Board 這兩隻程式的回傳值一但變更是完全不會反應該...

2023-10-11 ‧ 由 recca0120 分享
DAY 27

Day 27. 兩個物件互動測試 - PHPVCR

在上一篇我們的 Mock 對象已經改為 ClientInterface,那究竟將不能使用 PHPVCR 報替代 mock ClientInterface 呢?...

2023-10-12 ‧ 由 recca0120 分享
DAY 28

Day 28. 消除重覆程式碼 - 抽象類別

到目前為止我們已經能把 Ptt 的文章全部抓取回來了,也算是完成了我們目前的所有需求了,但我們再去 code review 會發現有一些重覆的程式碼 const...

2023-10-13 ‧ 由 recca0120 分享
DAY 29

Day 29. 消除重覆程式碼

在上一篇我們抽出了一個 Base 的抽象類別,今天我們換一個方式重構 原本 Home 及 Base 的程式如下 <?php namespace Recc...

2023-10-14 ‧ 由 recca0120 分享
DAY 30

Day 30. 一些想法

最後一篇就來說說挑戰30天的想法吧 第一次挑戰連寫30天真的還滿困難的,而且寫到第3天時發現這一系列的內容應該比較適合用影音的方式來呈現,但選錯組別也就只好硬寫...

2023-10-15 ‧ 由 recca0120 分享