# 測試初體驗 ## 104 共用工程部 簡佳恩 --- ## 自我介紹 簡佳恩 興趣:爬山,露營,籃球 三年程式開發經驗: - 網路爬蟲(2 年) - 網頁後端(約 1 年) --- 1. 學了什麼 2. 專案實作 --- ## 學了什麼 ![](https://i.imgur.com/0gyHIPY.png) ---- ![](https://i.imgur.com/yaNDY4q.png) --- ### 學習目標(ㄧ) - PHP - Composer - 學習成果? ---- #### 多人玩的終極密碼(cmd 版) - 可選擇玩家人數,場數 - 隨機選擇起始玩家,之後依場次更換起始玩家 - 先到獲勝場數的玩家獲勝 ---- ![](https://i.imgur.com/JVxTHOC.gif) ---- ##### 經歷三階段 ##### 寫邏輯 -> 重構 -> 寫測試 ---- ##### 寫邏輯 ---- - 階段一 - 實作遊戲邏輯 - 使用基礎語法 - 直線式思考,一條龍搞定 ---- ##### Composer 應用 ---- - 階段 1.5 - Composer 應用 - Symfony - Carbon ---- #### 重構? ---- - 階段二 - 成功模組化:互動介面跟遊戲邏輯分開 - 將程式搬到 Laravel Commands ---- #### 開發流程 ![](https://i.imgur.com/VIui5Kr.png) ---- #### 寫測試 ---- - 階段三 - 寫單元測試 - 模組化有助於測試撰寫 ---- #### 開發流程 ![](https://i.imgur.com/wUvu4HK.png) --- ### 學習目標(二) PHPUnit ---- #### 為什麼要單元測試 - 確認程式是照著自己的預期執行 - 修改後的測試較完整、避免改 A 壞 B - 程式易於模組化 ---- #### 3A 原則 - Arrange: 初始化 - Act: 執行測試的目標,獲得測試結果 - Assert: 驗證結果 ---- #### 3A 範例 ![](https://i.imgur.com/X3aOJxs.png) ---- #### 測試結果 ![](https://i.imgur.com/J76XanQ.png) ![](https://i.imgur.com/3BqqBlQ.png) --- ### 學習目標(三) Laravel 框架 - 學習內容 - Laravel 官方文件 - 學習方法 - 做中學,學中做 - 學習筆記 ---- #### 工作專案實作 - 翻寫 API * 5 - 協助手機驗證開發 ---- #### 實際開發步驟 以 某隻API 為例 ![](https://i.imgur.com/ximywdp.png) ---- #### 先寫 Commands 好處 - 可以當作一種測試方式 - 可以規避掉 middleware 限制 - 利於模組化 - 寫了不用刪,外面的人用不到 ---- #### 實戰應用 (Mock) ![](https://i.imgur.com/1XuWsL6.png) ---- #### 實戰應用 (Spy) ![](https://i.imgur.com/lJ02RnY.png) ---- #### 學習筆記 ![](https://i.imgur.com/QCIh0pO.png) ---- #### 測試相關 ![](https://i.imgur.com/5hnTx6C.png) ---- #### 網址 https://ithelp.ithome.com.tw/users/20141109/ironman/4412 ![](https://i.imgur.com/3yOCzpo.png)
{"metaMigratedAt":"2023-06-16T14:27:08.145Z","metaMigratedFrom":"YAML","title":"測試初體驗","breaks":true,"slideOptions":"{\"theme\":\"solarized\",\"transition\":\"fade\"}","contributors":"[{\"id\":\"fcf7bff7-3397-473c-913c-8133be5eaaef\",\"add\":2452,\"del\":547},{\"id\":\"ac882c88-670c-4198-b8b1-87dea01f7288\",\"add\":20,\"del\":6},{\"id\":\"da5efda3-757d-48aa-b560-2b11e410adf8\",\"add\":28,\"del\":0}]"}
    285 views