iT邦幫忙

phpunit相關文章
共有 72 則文章
鐵人賽 Software Development DAY 14

技術 D14 - 完整驗證應用程式:為重構築起無憂的安全防線

哈囉,大家好!讓我們延續單元測試議題,在這篇文章中,我想和大家聊聊單元測試的延伸議題,重構的重要性,特別是它如何為我們的程式碼提供一層安全防線,讓我們在重構時可...

鐵人賽 Software Development DAY 13

技術 D13 - 測試不只是找到錯誤:探索單元測試的價值與具體做法

哈囉,大家好!經過前面的努力,我們已經建立了個人財務管理系統的基本功能。現在,是時候來確保我們的程式碼品質了。今天,我想和大家聊聊單元測試,以及它為什麼不僅僅是...

鐵人賽 DevOps

技術 【Walking Skeleton】Day34 - Pest:來寫比 PHPUnit 還要簡潔的自動測試吧!

Pest 是由 PHPUnit 包裝和新增一些功能而成,它可以使用原本的 PHPUnit 語法,也可以使用更簡潔美觀方式撰寫測試程式 移除 PHPUnit 因...

鐵人賽 Software Development DAY 30
開心撰寫 PHPUnit 系列 第 30

技術 Day 30. 一些想法

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

鐵人賽 Software Development DAY 29
開心撰寫 PHPUnit 系列 第 29

技術 Day 29. 消除重覆程式碼

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

鐵人賽 Software Development DAY 28
開心撰寫 PHPUnit 系列 第 28

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

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

鐵人賽 Software Development DAY 27
開心撰寫 PHPUnit 系列 第 27

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

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

鐵人賽 Software Development DAY 26
開心撰寫 PHPUnit 系列 第 26

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

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

鐵人賽 Software Development DAY 25
開心撰寫 PHPUnit 系列 第 25

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

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

鐵人賽 Software Development DAY 24
開心撰寫 PHPUnit 系列 第 24

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

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

鐵人賽 DevOps DAY 23

技術 【Walking Skeleton】Day23 - 用 PHPUnit 來自動測試程式是否有按照預期運作

PHPUnit 是 php 的單元測試工具,它可以幫我們檢查程式是否有錯誤,不過驗證有沒有錯的程式還是需要自己寫,但是可以重複使用,也就是說不用再一直手動把變數...

鐵人賽 Software Development DAY 23
開心撰寫 PHPUnit 系列 第 23

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

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

鐵人賽 Software Development DAY 21
開心撰寫 PHPUnit 系列 第 21

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

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

鐵人賽 Software Development DAY 20
開心撰寫 PHPUnit 系列 第 20

技術 Day 20. 只是增加看版文章列表測試就變的超難寫 - 分段進行

在上一篇最終定義出最終結果希望為 <?php namespace Recca0120\Ithome30\Tests; use Mockery; us...

鐵人賽 Software Development DAY 19
開心撰寫 PHPUnit 系列 第 19

技術 Day19. 擴充爬蟲測試 - 思考抓取列表方案

在上一篇我們已將程式重構為 <?php // src/PttCrawler.php namespace Recca0120\Ithome30; use...

鐵人賽 Software Development DAY 18
開心撰寫 PHPUnit 系列 第 18

技術 Day 18. 重構程式碼 - 讓程式更容易擴充

在上篇我們提到希望最終的程式碼是呈現這樣 $crawler = new PttCrawler(); // 抓取所有看版及文章 $crawler->all(...

鐵人賽 Software Development DAY 17
開心撰寫 PHPUnit 系列 第 17

技術 Day 17. code review 程式

在上一篇我們把任務拆成 抓取熱門看版 抓取熱門看版文章 以目前的程式,我們似乎完成了『抓取熱門看版』的程式,在進行下一個步驟前,我們先來 code revi...

鐵人賽 Software Development DAY 16
開心撰寫 PHPUnit 系列 第 16

技術 Day 16. 爬蟲 - 用 TDD 的方式來思考

現在我們已經具備一些 PHPUnit 的使用方式之後,我們接下來就可以用 TDD 的方式來進行程式撰寫。所以我們現在來定義我們希望這個爬蟲要完成哪些功能。 任務...

鐵人賽 Software Development DAY 15
開心撰寫 PHPUnit 系列 第 15

技術 Day 15. 暫停一下 - 為什麼不一開始就使用 PHPVCR

這 14 天以來的文章我們可以練習到 使用 cli 執行 PHPUnit VSCode 使用 PHPUnit Test Explorer 執行 PHPUnit...

鐵人賽 Software Development DAY 14
開心撰寫 PHPUnit 系列 第 14

技術 Day14. 重構爬蟲測試 - 爬蟲的利器 PHPVCR

在之前介紹爬蟲的測試程式,我們是自己將 HTML 另存檔案,再利用 Mockery 來回傳 HTML,因為我們這次的範例只抓了一頁,所以另存新檔我們只需操作一...

鐵人賽 Software Development DAY 13
開心撰寫 PHPUnit 系列 第 13

技術 Day13. 重構爬蟲測試 - Mockery spy

在上一篇我們的測試程式如下 <?php namespace Recca0120\Ithome30\Tests; use Mockery; use G...

鐵人賽 Software Development DAY 12
開心撰寫 PHPUnit 系列 第 12

技術 Day 12. 重構爬蟲 - 移除不必要的 Interface

在上一篇我們是新增一個 HttpClient 的 interface 後,再實作一個 GuzzleHttpClient,但實際去看 Guzzle 的 Clie...

鐵人賽 Software Development DAY 11
開心撰寫 PHPUnit 系列 第 11

技術 Day 11. 使用 Guzzle 重構爬蟲 - 抽出 Interface

我們的 PTTCrawler 目前是注入自己撰寫的 HttpClient class,但 PHP 早就有寫好的 Guzzle 啊,所以我們就可以透過重構的方式來...

鐵人賽 Software Development DAY 10
開心撰寫 PHPUnit 系列 第 10

技術 Day 10. Test Double 的好幫手 - Mockery

在上一篇我們把程式改為『依賴注入』的方式,最終的測試案例的程式碼為 <?php // tests/PttCrawlerTest namespace R...

鐵人賽 Software Development DAY 9
開心撰寫 PHPUnit 系列 第 9

技術 Day 09. 用測試來寫爬蟲 - 依賴注入

在上一篇我們是使用 Extract Method 的方式來寫爬蟲,這一篇我們來改用『依賴注入』的方式來重構程式碼那 Extract Method 和 依賴注入...

鐵人賽 Software Development DAY 8
開心撰寫 PHPUnit 系列 第 8

技術 Day 08. 用測試來寫爬蟲 - Extract Method

今天我們就來試試在 PHPUnit 裡寫爬蟲,我們就來爬PTT的首頁吧 建立測試案例 我們可以很快速的建立第一個測試案例,寫完測試案例後立刻執行一次測試得到紅...

鐵人賽 Software Development DAY 7
開心撰寫 PHPUnit 系列 第 7

技術 Day 07. 讓自己的程式進化 - 重構

什麼是重構 重構就是『在不改變外部行為的狀況下,改變程式結構或擴充程式功能』,所以我們在調整程式結構的時候就會希望滿足以下條件 確認修改後的程式執行結果不變...

鐵人賽 Software Development DAY 7
開心撰寫 PHPUnit 系列 第 7

技術 Day 07. 讓自己的程式進化 - 重構

什麼是重構 重構就是『在不改變外部行為的狀況下,改變程式結構或擴充程式功能』,所以我們在調整程式結構的時候就會希望滿足以下條件 確認修改後的程式執行結果不變...

鐵人賽 Software Development DAY 6
開心撰寫 PHPUnit 系列 第 6

技術 Day 06. 讓 PHPStorm 來幫助自己寫測試 - 實戰篇

花了二篇的篇幅來介紹怎麼讓 VSCode 來幫助自己寫測試,那怎麼可以不介紹大名鼎鼎的 PHPStorm 呢? PHPStorm 是個訂閱制的付費軟體當然功能上...

鐵人賽 Software Development DAY 4
開心撰寫 PHPUnit 系列 第 4

技術 Day04. 讓 VSCode 來幫助自己寫測試 - PHPUnit Test Explorer

在上一篇中我們已經知道 PHPUnit 怎麼用了,但要產生測試 code 而且還得從編輯器切換到 cli 之後再執行vendor/bin/phpunit,這樣實...