寫了一本開源小書《Jest 實踐指南》

哈嘍,大家好溶握,我是海怪杯缺。

前段時間一直在給公司項目引入 Jest,這過程中學到了不少東西睡榆,也查了很多相關(guān)資料萍肆。最后編寫了一本小書《Jest 實踐指南》袍榆,
希望能幫助到想了解和學習前端測試的朋友。

[圖片上傳失敗...(image-c11d8f-1653009837996)]

測試難點

Jest 看似很簡單塘揣,就像很多博客寫的那樣:

expect(sum(1, 1)).toEqual(2)

然而在真實業(yè)務(wù)中包雀,寫出一個好測試的難度并不低。我總結(jié)了一下寫測試的幾個難點:

不會配置亲铡。 Jest 的上手文檔非常簡單才写,甚至不需要配置。但真實情況是只要一個配置沒配好奖蔓,所有測試都跑不起來赞草。測試不像開發(fā),代碼有問題可以慢慢調(diào)吆鹤,
而是一個 0 - 1 游戲厨疙,不是成功就是失敗,挫敗感非常強疑务。

不知道要怎么 Mock沾凄。 這個絕對是經(jīng)典中的經(jīng)典。雖然官方文檔有教程知允,但是真實的業(yè)務(wù)往往不是那么理想撒蟀,遠比文檔要復(fù)雜得多。

不會構(gòu)造測試用例温鸽。 剛接觸測試時牙肝,很容易把做業(yè)務(wù)那套 “實現(xiàn) XXX 功能” 的想法代入測試。但測試的重點不在于實現(xiàn)功能嗤朴,而是構(gòu)造用例配椭。

沒有測試策略。 上面是 “技” 的難點雹姊,測試還有 “術(shù)” 的難點股缸。悶著頭肝測試并不高效,使用合適的測試策略遠比寫 10 個測試用例重要吱雏。

上面這些問題很容易讓人寫出難以維護和復(fù)雜的測試敦姻。只要業(yè)務(wù)一改,不僅要維護業(yè)務(wù)代碼還要維護測試代碼歧杏。
這時镰惦,你不禁感嘆:“測試真浪費時間”,最終放棄寫測試犬绒,直接開擺旺入。

好的測試會讓你獲得很高的代碼信心,而不好的測試則會嚴重拖垮項目開發(fā)。所以茵瘾,大家所厭惡的不應(yīng)該是測試本身礼华,而是那些維護性差的測試。

社區(qū)現(xiàn)狀

目前國內(nèi)關(guān)于前端測試的內(nèi)容非常糟糕拗秘,在我查找資料過程中就沒有一次是不坎坷的圣絮。首先是 Jest 的官網(wǎng)就不給力:

[圖片上傳失敗...(image-cc85de-1653009837996)]

先不說翻譯的正確性如何,單看這中文的內(nèi)容就讓人沒有想看下去的欲望雕旨,真希望 Jest 能找稍微專業(yè)一點的人來做翻譯扮匠。
由于官網(wǎng)的中文翻譯做的實在太爛,遇到問題幾乎在中文社區(qū)是找不到的凡涩。

再來說國內(nèi)關(guān)于測試的文章餐禁,我總結(jié)有三類:

  1. 入門類。 安裝 Jest突照,外加 expect(1 + 1).toEqual(2) 小例子
  2. API 說明書類。 類似于把 Jest 官網(wǎng)抄了一遍
  3. 理論類氧吐。 詳細說了測試是什么讹蘑、為什么、測試理論等筑舅,但最重要的 “怎么做” 沒有說

不是說這些文章不好座慰,只是這些文章大多數(shù)停留在最初級,看完還是不會怎么寫測試翠拣。就現(xiàn)狀來看國內(nèi)測試社區(qū)是有進步的版仔,至少有不少人在寫第三類了,要知道以前基本只有第一類文章误墓。

教程誕生

終于蛮粮,我看到了 React Testing Library 作者 Kent C. Dodds 的 博客

[圖片上傳失敗...(image-167cf8-1653009837996)]

他寫了很多關(guān)于測試思路的文章谜慌,每一篇都非常精彩然想。受他的啟發(fā),我覺得有必要把這些思想和技巧分享出來欣范,最終形成了這本小書变泄。這本小書要解決的就是 “怎么做” 這一步。

內(nèi)容

此次教程主要分享測試的思路為主恼琼,雖然以 React 為主要技術(shù)棧妨蛹,但使用其它技術(shù)棧的讀者依然可以流暢閱讀。

本教程是我結(jié)合了自身實踐晴竞、Kent C. Dodds 文章蛙卤、StackOverflow、Github Issue 以及別的博客最終總結(jié)出來的一套實踐指南噩死。

小書包含 3 部分:

  • 基礎(chǔ)實踐表窘。 從 0 到 1 寫項目和測試典予,每一章會通過一個業(yè)務(wù)例子來分享測試難點、解法和思路乐严。
  • 配套項目瘤袖。 如果你在某一步卡殼了,也可以參考這個項目昂验。
  • 測試思路捂敌。 分享一些 Kent 的文章(中文翻譯)以及測試總結(jié)。

最后

我知道很多人看到這個貼子依然對測試嗤之以鼻既琴,可能覺得寫測試就是扯淡占婉、浪費時間的,也可能你已經(jīng)對國內(nèi)的 “短平快” 失望了甫恩,這個我完全能理解逆济。

但我相信總有人愿意寫測試的,我希望在他們學習如何寫測試時能給一個方向和引導磺箕。

如果你喜歡我的分享奖慌,可以來一波一鍵三連,點贊松靡、在看就是我最大的動力简僧,比心 ??

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市雕欺,隨后出現(xiàn)的幾起案子岛马,更是在濱河造成了極大的恐慌,老刑警劉巖屠列,帶你破解...
    沈念sama閱讀 216,402評論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件啦逆,死亡現(xiàn)場離奇詭異,居然都是意外死亡笛洛,警方通過查閱死者的電腦和手機蹦浦,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,377評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來撞蜂,“玉大人盲镶,你說我怎么就攤上這事◎蚬睿” “怎么了溉贿?”我有些...
    開封第一講書人閱讀 162,483評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長浦旱。 經(jīng)常有香客問我宇色,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,165評論 1 292
  • 正文 為了忘掉前任宣蠕,我火速辦了婚禮例隆,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘抢蚀。我一直安慰自己镀层,他們只是感情好,可當我...
    茶點故事閱讀 67,176評論 6 388
  • 文/花漫 我一把揭開白布皿曲。 她就那樣靜靜地躺著唱逢,像睡著了一般。 火紅的嫁衣襯著肌膚如雪屋休。 梳的紋絲不亂的頭發(fā)上坞古,一...
    開封第一講書人閱讀 51,146評論 1 297
  • 那天,我揣著相機與錄音劫樟,去河邊找鬼痪枫。 笑死,一個胖子當著我的面吹牛叠艳,可吹牛的內(nèi)容都是我干的奶陈。 我是一名探鬼主播,決...
    沈念sama閱讀 40,032評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼虑绵,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了闽烙?” 一聲冷哼從身側(cè)響起翅睛,我...
    開封第一講書人閱讀 38,896評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎黑竞,沒想到半個月后捕发,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,311評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡很魂,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,536評論 2 332
  • 正文 我和宋清朗相戀三年扎酷,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片遏匆。...
    茶點故事閱讀 39,696評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡法挨,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出幅聘,到底是詐尸還是另有隱情凡纳,我是刑警寧澤,帶...
    沈念sama閱讀 35,413評論 5 343
  • 正文 年R本政府宣布帝蒿,位于F島的核電站荐糜,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜暴氏,卻給世界環(huán)境...
    茶點故事閱讀 41,008評論 3 325
  • 文/蒙蒙 一延塑、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧答渔,春花似錦关带、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至端朵,卻和暖如春好芭,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背冲呢。 一陣腳步聲響...
    開封第一講書人閱讀 32,815評論 1 269
  • 我被黑心中介騙來泰國打工舍败, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人敬拓。 一個月前我還...
    沈念sama閱讀 47,698評論 2 368
  • 正文 我出身青樓邻薯,卻偏偏與公主長得像,于是被迫代替她去往敵國和親乘凸。 傳聞我的和親對象是個殘疾皇子厕诡,可洞房花燭夜當晚...
    茶點故事閱讀 44,592評論 2 353

推薦閱讀更多精彩內(nèi)容