點擊上方的語言選單以切換語言
外語書商城專案:單元測試架構、狀態管理與業界實踐規範
本專案嚴格遵循 Maven 與 Vite 的標準目錄規範,確保開發輔助程式碼與運行環境程式碼物理隔離:
當執行 mvn package 或 npm run build 時,建置工具會自動忽略 test 目錄。測試程式碼不會被打包進最終的執行檔中,因此對生產環境的效能與安全性零負擔。
我們根據軟體工程中的「測試投資報酬率 (ROI)」來分配測試資源:
| 組件名稱 | 測試權重 | 品質保證目標 |
|---|---|---|
| Service / Store | ★★★★★ | 驗證核心商業邏輯(如購物車重複檢查、登入狀態持久化、ISBN 重複判定、以輸入框呈現的關鍵字搜尋、以下拉式選單呈現的 14 種語言分類搜尋)。 |
| Controller / API JS | ★★★★☆ | 確保 API 契約(Contract)正確,驗證 HTTP 狀態碼與 JSON 格式符合前後端規範。 |
| Entity / DTO / Config | ★☆☆☆☆ | 此類組件多為結構定義,不含運算邏輯,透過編譯器檢查即可確保正確性,不需額外測試。 |
針對 Vue 3 的狀態管理,我們針對 AuthStore 與 CartStore 進行了深度邏輯驗證:
驗證登入後 userEmail 與 role 的存儲正確性,以及 logout 時本地緩存 (LocalStorage) 是否確實清除,防止隱私洩露。
特別測試了「重複加入攔截」功能:當書籍已在購物車時,前端應正確觸發 Alert 並阻止無效的 API 請求。此外,驗證了浮點數價格在加總時的精確度。
本專案對「書籍資料」採取按需加載(On-demand Load)策略。書籍列表資料通常是唯讀且高頻變動的,直接透過組件與 BookService 交互能減少內存佔用,確保使用者始終看到最新的庫存狀態,這是基於效能考慮的設計決策。