成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

前端自動化測試:測試到底測什么?

開發 前端 自動化
在實際開發過程中,編寫自動化測試代碼通常是開發人員不太喜歡的一個環節。大多數情況下,前端開發人員在開發完一項功能后,只是打開瀏覽器手動點擊,查看效果是否正確,之后就很少對該塊代碼進行管理。

[[407303]]

 對于稍微有一些開發經驗的同學在開發過程中總會經歷下面類似的問題:

  • 每次在版本發布上線之前,在電腦前蹲上好幾個小時甚至是更長時間對你的應用進行測試,這個過程非常枯燥而痛苦。
  • 當代碼的復雜度達到了一定的級別,當維護者的數量不止你一個,你應該會逐漸察覺到你在開發新功能或修復 bug 的時候,會變得越發小心翼翼,即使代碼看起來沒什么問題,但你心里還是會犯嘀咕:這個 Feature 會不會帶來其他 Bug ?這個 Fix 會不會引入其他"Feature" ?
  • 當你想要對項目中的代碼進行重構的時候,你會花費大量的時間進行回歸測試。

以上這些問題都是由于大多數開發者所使用最基本的手動測試的方式所帶來的問題,解決它的根本舉措就是引入自動化測試方案。

測試的流程

在實際開發過程中,編寫自動化測試代碼通常是開發人員不太喜歡的一個環節。大多數情況下,前端開發人員在開發完一項功能后,只是打開瀏覽器手動點擊,查看效果是否正確,之后就很少對該塊代碼進行管理。

造成這種情況的原因主要有兩個:

  • 一個是業務繁忙,沒有時間進行測試的編寫。
  • 另一個是不知道如何編寫測試。

但這些問題不應該作為我們掌握前端自動化測試的絆腳石。而且,一旦掌握了前端自動化測試方案,無論是對大型項目的開發,還是升職加薪,都是有益的。

提到測試的時候,即使是最簡單的一個代碼塊可能都讓初學者不知所措。最常問的問題的是“我怎么知道要測試什么?”。如果你正在寫一個 Web 應用,那么你每個頁面每個頁面的測試用戶交互的方式,就是一個很好的開端了。但 Web 應用也是由很多個函數和模塊組成的代碼單元,也是需要測試的。通常有兩種情況:

  • 你接手的遺留代碼沒有寫測試用例
  • 你必須從無到有的實現一個新功能

該怎么辦呢?對于上面兩種場景,你可以把測試視為代碼的一部分來編寫。我所說的這些代碼,是用來檢查給定的函數是否產生預期輸出結果的。一個典型的測試流程如下:

1. 引入要測試的函數

2. 給函數一個輸入

3. 定義預期輸出

4. 檢查函數是否返回了預期的輸出結果

就這么多。這樣看測試也沒那么可怕的嘛:輸入 —— 預期輸出 —— 驗證結果。

一個測試案例

下面來看一個例子:

  1. // math.js 
  2. functionadd (a, b) { 
  3.   return a + b 
  4.  
  5. functionsubtract (x, y) { 
  6.   return x - y 
  7.  
  8. module.exports= { 
  9.   add
  10.   subtract 

如何保證上面代碼的正確性?

下面來寫一段測試代碼:

  1. // test.js 
  2.  
  3. const { add, subtract } =require('./math'
  4.  
  5. const result =add(1,2) 
  6. const expected =3 
  7.  
  8. if (result !== expected) { 
  9.   thrownewError(`1 + 2 應該等于${expected},但是結果卻是${result}`) 
  10.  
  11. const result2 =subtract(2,1) 
  12. const expected2 =1 
  13.  
  14. if (result2 !== expected2) { 
  15.   thrownewError(`2 - 1 應該等于${expected2},但是結果卻是${result2}`) 

命令行執行 node test.js 后,會看到錯誤信息:

  1. Error: 1 + 2 應該等于 3,但是結果卻是 2 

通過測試代碼可以很方便的幫助驗證代碼的正確性。

封裝測試工具函數

之前示例的測試代碼太過繁瑣,可以思考一下能否封裝的更簡便一些,比如下面這樣:

  1. expect(add(1,2)).toBe(3) 
  2. expect(subtract(2,1)).toBe(-1) 

上面的測試代碼就像自然語言說話一樣,很舒服。

實現 expect 方法:

  1. // test.js 
  2. const { add, subtract } =require('./math'
  3.  
  4. expect(add(1,2)).toBe(3) 
  5. expect(subtract(2,1)).toBe(1) 
  6.  
  7. functionexpect (result) { 
  8.   return { 
  9.     toBe (actual) { 
  10.       if (result !== actual) { 
  11.         thrownewError(`預期值和實際值不相等,預期結果: ${actual},實際結果: ${result}`) 
  12.       } 
  13.     } 
  14.   } 

增加錯誤提示信息:

  1. // test.js 
  2. const { add, subtract } =require('./math'
  3.  
  4. test('測試加法', () => { 
  5.   expect(add(1,2)).toBe(3) 
  6. }) 
  7.  
  8. test('測試減法', () => { 
  9.   expect(subtract(2,1)).toBe(1) 
  10. }) 
  11.  
  12. functiontest (description, callback) { 
  13.   try { 
  14.     callback() 
  15.     console.log(`${description}通過測試`) 
  16.   } catch (err) { 
  17.     console.error(`${description}沒有通過測試:${err}`) 
  18.   } 
  19.  
  20. functionexpect (result) { 
  21.   return { 
  22.     toBe (actual) { 
  23.       if (result !== actual) { 
  24.         thrownewError(`預期值和實際值不相等,預期結果: ${actual},實際結果: ${result}`) 
  25.       } 
  26.     } 
  27.   } 

本文轉載自微信公眾號「勾勾的前端世界」,可以通過以下二維碼關注。轉載本文請聯系勾勾的前端世界公眾號。

 

責任編輯:姜華 來源: 勾勾的前端世界
相關推薦

2021-06-30 19:48:21

前端自動化測試Vue 應用

2021-06-26 07:40:21

前端自動化測試Jest

2023-05-18 14:01:00

前端自動化測試

2022-09-14 10:00:12

前端自動化測試

2016-09-26 16:42:19

JavaScript前端單元測試

2012-05-24 15:01:35

James Bach測試自動化

2011-12-23 17:09:57

自動化測試

2012-12-24 22:54:31

2014-04-16 14:15:01

QCon2014

2021-07-02 17:22:50

前端TDDBDD

2017-01-16 13:38:05

前端開發自動化

2012-02-27 17:34:12

Facebook自動化

2021-09-03 09:56:18

鴻蒙HarmonyOS應用

2022-02-17 10:37:16

自動化開發團隊預測

2013-05-16 10:58:44

Android開發自動化測試

2009-08-19 09:00:48

單元測試框架自動化測試

2024-11-01 15:05:12

2022-09-14 23:14:26

前端自動化測試工具

2014-11-20 13:49:15

2011-06-03 17:24:48

自動化測試
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 九色视频网站 | 免费一看一级毛片 | 欧美极品在线观看 | 久久久久亚洲精品 | 午夜成人免费视频 | 综合九九 | 91精品国产综合久久福利软件 | 国产久 | 久久久妇女国产精品影视 | 欧美精品一区二区免费 | 毛色毛片免费看 | 免费在线观看一区二区 | 国产精品黄色 | 91激情电影 | 成人免费网站www网站高清 | 久久久精品一区 | 日本不卡一区二区三区 | 天天爽夜夜爽精品视频婷婷 | 欧美精品在线观看 | 国产成人精品一区二区三区在线观看 | 国产精品成人一区二区 | 天堂色| 综合一区 | 日本精品一区二区三区在线观看视频 | 国产免费福利在线 | 亚洲一区二区在线 | 网站国产 | 成人在线视频免费观看 | 国内精品久久久久久久影视简单 | 国产在线www | 中文字幕色站 | 99精品国自产在线 | 精品粉嫩超白一线天av | 午夜精品一区二区三区在线观看 | 亚洲一区视频在线 | 久久久久久99 | 成人久久网 | 久久久久九九九女人毛片 | 黄一级| 国产成人福利视频在线观看 | 国产人免费人成免费视频 |