在前端做單元測試時,單純的 function in-out 測試是不夠的,必須更多的去測試各種操作與業務邏輯。
所以對我們來說,通常最需要關注的會是組件是否可以正常的作用。
而組件的 UI 測試,可以透過前面介紹過的 Storybook 搭配衍生服務來進行,所以組件的 Unit test 就會把重點放在功能性上。
這時候就要請出另一個工具: Testing Library
出場了。
這一套前端組件的測試工具除了提供原生 DOM 的版本外,也同時提供了非常多種框架的版本,幾乎是涵蓋了所有主流的框架,推薦使用的原因也在這裡,不論公司、團隊選擇怎樣的架構,我們可以用熟悉的 API 來完成測試操作。
而 Testing Library 的核心概念在於盡可能的讓測試模擬使用者操作,而不是讓開發者去測試組件的各種實現細節。
所以在測試的撰寫上,會更多地偏向於透過 Testing Library 提供的選擇器、事件觸發器來對組件進行操作,然後確認組件的渲染結果是不是如我們所預期。
The more your tests resemble the way your software is used, the more confidence they can give you.