0%

工具

Test Runner

Test Assertion

Test Double & Mock

Component Testing

測試種類

Mutation Testing

相關書籍、文章

單元測試 Unit Testing

斷言庫 Assertion Library

測試替身 Test Double

Conf

測試相關議題

TDD

Coverage

vitest-logo

那些沒說到的部分

在開賽時,起初寫了個預期的 TOC 來規劃要講哪些內容,然而隨著每天撰文下來,覺得有部分內容比較偏向額外的學習,因此在評估後,決定調整原先 TOC 的內容,定義一下我認為至少先學到哪個部分就已足夠開始在實際專案中應用,而這一段落主要是來小談一下這些異動的章節有哪些,以及為什麼會有這些異動與將來是否會再陸續補充。

閱讀全文 »

焦油坑

史前動物 焦油坑

程式, 軟體系統, 軟體產品, 軟體系統產品 差異與成本

樂趣:

  • 趣味與獨特
  • 對他人有用
  • 推理解謎
  • 持續學習

苦難:

  • 須完美,因為一有缺失看得出來
  • 別人設定目標 提供資訊
  • 仰賴他人
  • 臭蟲
  • 產品上市時已過時

如果解決這焦油坑便是這本書要處理的事情

人月神話

紐奧良 Antoine 餐廳

好菜都得多花時間準備

軟體專案不順 => 多半是缺乏良好時程規劃

原因:

  • 預估時間技術不成熟
  • 誤把工作量當成專案進度 => 反應以為人力跟工時是可以互換的
  • RD 無法篤定時程 => PM 無法堅持 Antoine 餐廳美學
  • 軟體工程時程缺法監控 => 卻用其他工程領域被證明或可行的技術拿來套用並改革
  • 以為延遲增加人手就可以更快

本書不講工程時程監控這件事情!

vitest-logo

最佳實踐(Best Practice)

程式語言本身可分為語法(Syntax)與語意(Semantics)兩部分:語法的部分主要受限於語言中的設計以及工具基於這些設計打造了什麼功能供我們使用,而語意的部分則是我們如何透過這些語法,來設計、歸納好我們想表達的邏輯。

同樣地,測試程式碼也是程式碼的一環,在撰寫測試程式碼的時候,我們除了語法上的學習之外,也應當考量測試程式碼的可讀性與維護性等等。

而今天的主題,我們要來一起欣賞開源專案 《JavaScript 測試的最佳實踐》,在這份指南中集結了大量的文章與書籍所給予撰寫測試程式碼上的建議!

由於這份指南說真的沒有很長,個人非常推薦把這個項目的內容完整閱讀一遍,因此本文主要傾向補充說明我個人的看法;並將本系列文提過的概念條列出來,讓讀者可快速回想。

若是英文苦手的開發者朋友們,也可以參考由
YuBin 所翻譯的 中文版本

閱讀全文 »

vitest-logo

程式碼覆蓋率(Code Coverage)

在測試領域中,覆蓋率(Coverage)一詞泛指的是以百分比表示測試程式碼能夠涵蓋多少產品程式碼的範圍,而依據不同的覆蓋率種類,其細微的定義也會有所不同。

接下來我們以覆蓋率工具庫 c8 來說明覆蓋率的概念與如何透過 c8 在 Vitest 測試環境中檢視當下的測試覆蓋率,最後再來談談有關於覆蓋率的相關議題。

閱讀全文 »

vitest-logo

Vitest UI

經過了一個月多,我們也從測試基礎概念一路講到實際上的語法和簡單的應用,而有關於測試的部分,還有許多值得我們去探討的地方,因此從今天開始要來談談一些有關於測試的相關輔助工具與議題,看看這些東西要怎麼協助我們更好的撰寫測試。

閱讀全文 »

vitest-logo

本文序

前幾天測試替身相關章節最主要的強項主要都是在當我們專案實作過程中有依賴外部模組或工具時,我們可以透過替身的方式來測試我們的邏輯,而不需要真的去執行外部模組或工具,這樣可以減少測試時間,也可以避免測試時因為外部模組或工具的問題而造成測試失敗。

因此測試替身我們必須先走過一次概念,才能更好的理解替身本身要做的事情;接著語法的部分則要瞭解到 Vue Test Utils 與 Vitest 提供了哪些語法可以供我們選擇使用;最後,在測試的部分我們才能透過洽當的概念和語法來撰寫出更好的測試案例。

所以今天我們就要來看看當我們在使用 Vue 周邊工具時,我們要如何利用測試替身來撰寫測試案例!

閱讀全文 »