精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

前端自動化測試:Vue 應用測試

開發 前端 自動化
測試不僅能夠驗證軟件功能、保證代碼質量,也能夠影響軟件開發的模式。TDD(Test-driven development),就是測試驅動開發,是敏捷開發中的一項核心實踐和技術,也是一種軟件設計方法論。

[[408453]]

項目環境搭建

運行 vue create [project-name] 來創建一個新項目。選擇 "Manually selectfeatures" 和 "UnitTesting",以及 "Jest" 作為 test runner。

一旦安裝完成,cd 進入項目目錄中并運行 yarn test:unit。

通過 jest 配置文件:

\jest.config.js ==> node_modules\@vue\cli-plugin-unit-jest\jest-preset.js ==> \node_modules\@vue\cli-plugin-unit-jest\presets\default\jest-preset.js

jest-preset.js 文件就是 Vue 項目創建后,默認的 jest 配置文件:

  1. module.exports= { 
  2.   // 可加載模塊的后綴名 
  3.   moduleFileExtensions: [ 
  4.     'js'
  5.     'jsx'
  6.     'json'
  7.     // tell Jest to handle *.vue files 
  8.     'vue' 
  9.   ], 
  10.   // 轉換方式 
  11.   transform: { 
  12.     // process *.vue files with vue-jest 
  13.     // 如果.vue結尾的,使用vue-jest進行轉換 
  14.     '^.+\\.vue$': require.resolve('vue-jest'), 
  15.     '.+\\.(css|styl|less|sass|scss|svg|png|jpg|ttf|woff|woff2)$'
  16.     require.resolve('jest-transform-stub'), 
  17.     '^.+\\.jsx?$': require.resolve('babel-jest'
  18.   }, 
  19.   // 轉換時忽略文件夾 
  20.   transformIgnorePatterns: ['/node_modules/'], 
  21.   // support the same @ -> src alias mapping in source code 
  22.   // webpack 的別名映射轉換 
  23.   moduleNameMapper: { 
  24.     '^@/(.*)$':'<rootDir>/src/$1' 
  25.   }, 
  26.   // 指定測試環境為 jsdom  
  27.   testEnvironment:'jest-environment-jsdom-fifteen'
  28.  
  29.   // serializer for snapshots 
  30.   // 快照序列化器 
  31.   // 使用 jest-serializer-vue 進行組件快照的序列化方式 
  32.   // 就是將組件轉為字符串,后面進行快照測試時,就可以看到了 
  33.   snapshotSerializers: [ 
  34.     'jest-serializer-vue' 
  35.   ], 
  36.  
  37.   // 測試代碼文件在哪里 
  38.   testMatch: [ 
  39.     '**/tests/unit/**/*.spec.[jt]s?(x)'
  40.     '**/__tests__/*.[jt]s?(x)' 
  41.   ], 
  42.   // https://github.com/facebook/jest/issues/6766 
  43.   testURL:'http://localhost/'
  44.   // 監視模式下的插件 
  45.   watchPlugins: [ 
  46.     require.resolve('jest-watch-typeahead/filename'), 
  47.     require.resolve('jest-watch-typeahead/testname'
  48.   ] 

快速體驗

默認測試用例:tests\unit\example.spec.js

  1. //tests\unit\example.spec.js 
  2. // 導入組件掛載器,不用手動寫vue入口 
  3. import { shallowMount } from'@vue/test-utils' 
  4. // 導入要測試的組件 
  5. import HelloWorld from'@/components/HelloWorld.vue' 
  6.  
  7. describe('HelloWorld.vue', () => { 
  8.   it('rendersprops.msg when passed', () => { 
  9.     const msg ='newmessage' 
  10.     const wrapper =shallowMount(HelloWorld, { 
  11.       props: { msg } 
  12.     }) 
  13.     expect(wrapper.text()).toMatch(msg) 
  14.   }) 
  15. }) 
  1. $ npm runtest:unit 

搭建完基本的 Vue 測試環境,在正式開始 Vue 測試之前,我們先了解一下測試開發的方法。

測試開發方式

測試不僅能夠驗證軟件功能、保證代碼質量,也能夠影響軟件開發的模式。

測試開發有兩個流派:

  • TDD:測試驅動開發,先寫測試后實現功能
  • BDD:行為驅動開發,先實現功能后寫測試

什么是TDD

TDD(Test-driven development),就是測試驅動開發,是敏捷開發中的一項核心實踐和技術,也是一種軟件設計方法論。

它的原理就是在編寫代碼之前先編寫測試用例,由測試來決定我們的代碼。而且 TDD 更多地需要編寫獨立的測試用例,比如只測試一個組件的某個功能點,某個工具函數等。

TDD開發流程:

  • 編寫測試用例
  • 運行測試
  • 編寫代碼使測試通過
  • 重構/優化代碼
  • 新增功能,重復上述步驟
  1. // tests\unit\example.spec.js 
  2. // 導入組件掛載器,不用手動寫vue入口 
  3. import { shallowMount } from'@vue/test-utils' 
  4. // 導入要測試的組件 
  5. import HelloWorld from'@/components/HelloWorld.vue' 
  6.  
  7. import {addfrom'@/utiles/math.js' 
  8. // 輸入:1,2 
  9. // 輸出:3 
  10. test('sum', () => { 
  11.   expect(add(1,2)).toBe(3) 
  12. }) 

單純運行測試代碼肯定報錯,有了測試代碼,為了通過測試,再具體寫 math 模塊中的 add() 方法:

  1. // math.js 
  2. functionadd (a, b) { 
  3.   return a + b 
  4. exportdefault add 

Vue 3 的 TDD 測試用例

src\components\TodoHeader.vue 組件內容

  1. <template> 
  2.   <header> 
  3.    <h1>Todos</h1> 
  4.     <input  
  5.      v-model="inputValue" 
  6.      placeholder="What needs to be done?" 
  7.      data-testid="todo-input" 
  8.      @keyup.enter="handleNewTodo" 
  9.     /> 
  10.  </header> 
  11. </template> 

測試用例:

tests\unit\example.spec.js

  1. // 導入組件掛載器,不用手動寫vue入口 
  2. import { shallowMount } from'@vue/test-utils' 
  3. // 導入要測試的組件 
  4. import HelloWorld from'@/components/HelloWorld.vue' 
  5.  
  6. import TodoHeader from'@/components/TodoHeader.vue' 
  7. test('unit: new todo',async () => { 
  8.   const wrapper =shallowMount(TodoHeader) // 掛載渲染組件 
  9.   const input = wrapper.find('[data-testid="todo-input"]') // 查找input 
  10.   // 給input設置一個值 
  11.   const text ='helloworld' 
  12.   await input.setValue(text) 
  13.   // 觸發事件 
  14.   await input.trigger('keyup.enter'
  15.   // ========= 
  16.   // 以上是具體操作,輸入內容按下回車后,希望做什么?↓👇 
  17.   // ========= 
  18.  
  19.   // 驗證應該發布一個對外的 new-todo 的事件 
  20.   expect(wrapper.emitted()['new-todo']).toBeTruthy() 
  21.   // 驗證導出事件的參數是否是傳入的值 
  22.   expect(wrapper.emitted()['new-todo'][0][0]).toBe(text) 
  23.   // 驗證文本框內容是否清空 
  24.   expect(input.element.value).toBe(''
  25.  
  26. }) 

src\components\TodoHeader.vue 組件內容

  1. exportdefault { 
  2.   data(){ 
  3.     return { 
  4.       inputValue:'' 
  5.     } 
  6.   }, 
  7.   methods:{ 
  8.     handleNewTodo(){ 
  9.       if(this.inputValue.trim().length){ 
  10.         // 發布對外的 new-todo 事件值為文本框輸入內容 
  11.         this.$emit('new-todo',this.inputValue) 
  12.         this.inputValue='' 
  13.       } 
  14.     } 
  15.   } 
  16. }; 

 

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

2021-06-26 07:40:21

前端自動化測試Jest

2023-05-18 14:01:00

前端自動化測試

2021-06-25 10:57:30

前端自動化測試開發

2022-09-14 10:00:12

前端自動化測試

2011-04-18 12:52:37

自動化測試功能測試軟件測試

2016-09-26 16:42:19

JavaScript前端單元測試

2011-12-23 17:09:57

自動化測試

2012-12-24 22:54:31

2014-04-16 14:15:01

QCon2014

2010-09-08 15:25:09

自動化測試技術網站鏈接測試

2011-08-16 15:36:47

iPhone應用測試

2021-07-02 17:22:50

前端TDDBDD

2017-01-16 13:38:05

前端開發自動化

2022-02-17 10:37:16

自動化開發團隊預測

2021-09-03 09:56:18

鴻蒙HarmonyOS應用

2012-02-27 17:34:12

Facebook自動化

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

前端自動化測試工具
點贊
收藏

51CTO技術棧公眾號

欧美高清视频www夜色资源网| 国产精品久久免费看| 亚州欧美日韩中文视频| av女人的天堂| 国产精品毛片aⅴ一区二区三区| 亚洲一区二区在线观看视频 | 久久久久久com| 在线免费看黄视频| 国产日韩欧美中文在线| 婷婷六月综合亚洲| 天天爱天天做天天操| 日本天堂影院在线视频| 国产一区二区影院| 日本在线观看天堂男亚洲 | 涩视频在线观看| 成人午夜一级| 欧美日韩国产一区二区三区| 国产av第一区| 国产51人人成人人人人爽色哟哟| 国产iv一区二区三区| 国产精品亚洲视频在线观看| 国产精品久久久毛片| 中国人与牲禽动交精品| 欧美诱惑福利视频| 国产午夜手机精彩视频| 无码日韩精品一区二区免费| 日韩一区二区影院| 国产九九在线视频| 免费看男女www网站入口在线| 中文字幕在线不卡一区二区三区| 成人动漫视频在线观看完整版| 中文有码在线播放| 亚洲欧美日韩国产一区二区| 欧美激情免费观看| 久久精品视频免费在线观看| 精品久久91| 精品小视频在线| 日本一区二区在线观看视频| 欧洲大片精品免费永久看nba| 欧美人牲a欧美精品| 青青青国产在线视频| 美女的胸无遮挡在线观看| 一区二区三区视频在线观看| 欧美日韩一级在线| 欧美尤物美女在线| 中文字幕av一区 二区| 欧美日韩亚洲一区二区三区在线观看 | 国产日韩欧美影视| 国产精品无码粉嫩小泬| 久久亚洲一区| 国产福利视频一区| 中文天堂在线资源| 美女视频黄免费的久久| 国产精品一区二区久久国产| 中文字幕一区二区人妻痴汉电车| 久久久久中文| 国产精品精品国产| 在线免费观看高清视频| 久久国产精品无码网站| 成人在线国产精品| 亚洲第一黄色片| 成人不卡免费av| 九九九九九九精品| 精品福利视频导航大全| 国产无一区二区| 亚洲国产一区在线| 精品国产99久久久久久| 亚洲黄色性网站| 精品人妻人人做人人爽| 成人一级福利| 色999日韩国产欧美一区二区| 免费看污黄网站| 先锋影音网一区二区| 欧美一区二区精品久久911| 一区二区三区人妻| 欧美一级一片| 在线视频国产日韩| 黄色一级片中国| 亚洲美女黄色| 国产精品r级在线| 国产乱淫av免费| 成人h动漫精品一区二区| 蜜桃av噜噜一区二区三区| 国产视频网址在线| 亚洲三级小视频| 加勒比成人在线| 国产一级爱c视频| 国产欧美 在线欧美| 无码少妇一区二区| 91综合在线| 免费国产自线拍一欧美视频| 精品国产九九九| 不卡av影片| 欧美日精品一区视频| 成人自拍性视频| 亚洲天堂视频网站| 老司机精品视频在线| 91一区二区三区| 久久经典视频| 亚洲资源中文字幕| 亚洲性生活网站| 麻豆国产精品| 国产亚洲视频中文字幕视频| 免费三片在线播放| 裸体在线国模精品偷拍| 国产精品一区二区欧美黑人喷潮水| 丁香在线视频| 精品久久中文字幕| 久久精品无码一区二区三区毛片| 同性恋视频一区| 欧美成年人视频网站欧美| 亚洲图片欧美日韩| 成人av手机在线观看| 国产精品视频一区二区三区四| 欧美性色欧美a在线播放| 国产成人aa精品一区在线播放| 在线观看av大片| 91香蕉国产在线观看软件| 亚洲一卡二卡区| 亚洲美女炮图| 精品欧美一区二区久久| 国产一二三四视频| sm捆绑调教视频| caoporn97在线视频| 欧美日韩一区二区三区| 在线观看日本www| 狠狠色狠狠色综合婷婷tag| 欧美性生活一级| 日本成人在线网站| 欧美另类videos死尸| 少妇户外露出[11p]| 欧美一级片免费| 男人舔女人下部高潮全视频 | 中文字幕第一区综合| 毛片在线视频播放| 韩国精品福利一区二区三区| 欧美成人免费一级人片100| 一级片在线免费观看视频| 蜜臂av日日欢夜夜爽一区| 一本一道久久综合狠狠老| av网站大全在线| 欧美一区二区三区少妇| 朝桐光av在线一区二区三区| 一区二区中文字幕在线观看| 亚洲天堂视频在线观看| 国产精品suv一区二区三区| 丰满白嫩尤物一区二区| 久久久国内精品| 深夜福利一区| 欧美贵妇videos办公室| 午夜老司机福利| 久久亚洲精品中文字幕| 免费在线高清av| 亚洲深夜av| 高清国产一区| 黄色在线论坛| 婷婷av一区二区三区| 卡一卡二国产精品| 亚洲精品第一区二区三区| 3d欧美精品动漫xxxx无尽| 亚洲深夜福利网站| 亚洲视频一区二区三区| 欧美一级理论片| 精品综合久久久久| 青青草国产免费一区二区下载 | 国产日产欧美一区二区| 欧美性理论片在线观看片免费| 亚洲女在线观看| 免费在线不卡av| 日韩一区在线免费观看| 国产吃瓜黑料一区二区| 国产精品久久久久久久免费软件 | 欧美伦理视频在线观看| 国产亚洲一区| 国产精品自在线| 91小视频xxxx网站在线| 欧美va亚洲va国产综合| 国产美女激情视频| 日韩乱码在线观看| av片在线免费| 日韩中文字幕亚洲精品欧美| 日韩在线资源| 欧美一区二区二区| 久久精品美女视频| 国产欧美精品一区二区色综合 | 亚洲影院在线| 日韩一区二区三区高清免费看看| 久久成人国产精品入口| 成人av在线一区二区三区| 国内外成人免费激情视频| 青草国产精品| 国产精品视频入口| 国产电影一区二区三区爱妃记| 一区二区国产精品视频| 成 年 人 黄 色 大 片大 全| 精品一区二区三区中文字幕在线| 91精品国产99| 国产一二三区在线观看| 精品无码久久久久久国产| 国产三级在线观看视频| 欧美午夜xxx| 国产suv精品一区二区68| www.性欧美| www.成年人| 免费在线观看的电影网站| 精品久久在线| 天天综合亚洲| 日本道色综合久久| 成人精品一二三区| av网站免费线看精品| 一区二区在线免费看| 亚洲综合不卡| 青青在线视频免费观看| 久久视频精品| 欧美在线播放一区| 国产精品2023| www.成人av| 欧美激情福利| 国产精品精品国产| 在线免费看h| 97精品视频在线播放| 18视频在线观看| 日韩在线欧美在线| 91涩漫在线观看| 亚洲男人av电影| 无码国产精品一区二区免费16| 日韩女优电影在线观看| 国产理论视频在线观看| 欧美日韩高清在线播放| 中文字幕第一页在线播放| 欧美性xxxxx极品娇小| 国产在线精品观看| 亚洲一区二区视频在线| 538任你躁在线精品视频网站| 亚洲欧洲www| 国精产品一区一区| 日本一区二区三区在线不卡| 一级片手机在线观看| 久久网站热最新地址| 国产精品成人无码专区| 成人黄色a**站在线观看| 国产成人精品一区二区三区在线观看| 精品一区二区免费| 男人午夜视频在线观看| 极品少妇一区二区| 亚洲黄色片免费| 激情图片小说一区| 日韩av福利在线观看| 国产在线播精品第三| 99999精品| 国产一区久久久| 在线成人免费av| 国产成人亚洲精品狼色在线| www.黄色网| 99久久精品免费| 国产熟妇搡bbbb搡bbbb| 国产网站一区二区| 日韩av片在线免费观看| 亚洲欧美视频在线观看视频| 91嫩草|国产丨精品入口| 一区二区三区四区视频精品免费 | 亚洲毛片在线播放| 精品国产乱码久久久久久老虎| 欧洲成人一区二区三区| 精品性高朝久久久久久久| 欧洲一区av| 日韩亚洲精品电影| 日本在线视频www鲁啊鲁| 97精品视频在线播放| 欧美精品资源| 成人免费福利在线| 91大神精品| 久久久综合亚洲91久久98| 成人免费看片39| 久久精品在线免费视频| 亚洲每日更新| 999在线观看| 粉嫩13p一区二区三区| 新91视频在线观看| 自拍偷拍亚洲综合| www.国产色| 欧美日韩在线综合| 亚洲精品成人区在线观看| 亚洲欧美在线一区二区| 免费观看在线黄色网| 欧美日韩国产二区| 黄瓜视频成人app免费| 亚洲自拍偷拍网址| 色橹橹欧美在线观看视频高清| 亚洲欧美成人一区| 在线日韩电影| 亚洲图色中文字幕| 久久免费国产精品| 99精品久久久久| 欧美午夜精品一区二区三区| 亚洲AV无码乱码国产精品牛牛| 亚洲欧美一区二区三区久久| 99视频免费在线观看| 国产黑人绿帽在线第一区| 韩国一区二区三区视频| 精品国产一区二区三区久久久久久| 色乱码一区二区三区网站| 免费观看国产精品视频| 国产尤物一区二区| 国产精品扒开腿做爽爽| 婷婷一区二区三区| 精品国产18久久久久久| 中文字幕亚洲专区| 天堂av中文在线观看| 99re在线| 国产精品久久久乱弄 | 亚洲视频自拍偷拍| 免费污视频在线观看| 国产精品久久网| 亚洲高清极品| 日日摸日日碰夜夜爽无码| 国产成人在线观看| 国产真实乱在线更新| 欧美日韩一区不卡| 国产对白叫床清晰在线播放| 欧美亚洲另类制服自拍| 国产精品丝袜在线播放| 丰满人妻一区二区三区53号| 激情综合网av| 国产精品一区二区亚洲| 欧美影视一区在线| 麻豆app在线观看| 欧美亚洲国产日本| 美女视频免费精品| 成人免费看片'免费看| 国产精品一二三四| 欧美风情第一页| 欧美日韩国产经典色站一区二区三区 | 久久99久久99小草精品免视看| 四虎国产精品成人免费入口| 色综合一区二区| 五月婷婷六月丁香| 午夜精品久久久久久久99黑人 | 精品日韩成人av| 超碰在线caoporn| 成人在线激情视频| 亚洲五月综合| 欧美熟妇另类久久久久久多毛| 亚洲日本青草视频在线怡红院 | 天堂网一区二区三区| 亚洲国产一区自拍| 国产拍在线视频| 久久伊人资源站| 国产精品综合色区在线观看| 日韩av无码一区二区三区不卡 | 久久精品视频网| 丰满人妻老熟妇伦人精品| 亚洲日韩中文字幕| 日韩制服一区| 一区二区三区精品国产| 国产一区二区三区久久久| 成年人av电影| 亚洲第一精品福利| 小视频免费在线观看| 日韩欧美精品久久| 韩国一区二区三区| 欧美成人综合色| 亚洲精品suv精品一区二区| 小草在线视频免费播放| 午夜久久资源| 国产裸体歌舞团一区二区| 日本免费观看视| 综合136福利视频在线| 国产一区二区三区| 午夜免费福利小电影| 国产午夜精品一区二区三区视频 | 欧美日本一区二区三区| 青青影院在线观看| 国产a一区二区| 午夜亚洲激情| 中文字幕无码日韩专区免费| 精品国产免费久久| 三上悠亚亚洲一区| 黄色网络在线观看| 99久久er热在这里只有精品15| 亚洲男人天堂网址| 欧美成人小视频| 网友自拍一区| 免费不卡av网站| 日韩欧美在线字幕| 在线播放蜜桃麻豆| 久久久一本精品99久久精品| 久久精品国产99久久6| 国产成人啪精品午夜在线观看| 一区二区三区视频在线| 97一区二区国产好的精华液| 久久午夜夜伦鲁鲁一区二区| 亚洲一区二区三区影院| 第九色区av在线| 国产精品乱码一区二区三区| 蜜臀av国产精品久久久久| 国产无码精品在线观看| 日韩在线观看免费全| 伊人久久大香线蕉无限次| 国产探花在线观看视频|