亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

vue-test-utils初使用詳解

2019-11-19 11:29:02
字體:
來源:轉載
供稿:網友

vue-test-utils官網:https://vue-test-utils.vuejs.org/zh/

jest官網:https://jestjs.io

依賴包

請安裝它們👇

yarn add @vue/test-utils vue-jestyarn jestjest-serializer-vueyarn add babel-jest babel-core@^7.0.0-bridge.0

⚠️:vue-jest依賴與babel-core。我們的環境現在都是babel7,通過npm安裝的babel-core默認的還是6版本,所以要指定babel-core安裝的系列為7,否則會出現解析問題。

配置

jest配置:告訴jest它需要哪些額外的配置

jest相關的配置可以配置在package.json中或者單獨的jest.config.json文件中:

// jest.config.json{      "moduleFileExtensions": [    "js",    "json",    "vue"  ],  "transform": {    "^.+//.js$": "<rootDir>/node_modules/babel-jest", // jest使用babel解析js    ".*//.(vue)$": "<rootDir>/node_modules/vue-jest" // jest對vue單文件的解析  },  "snapshotSerializers": [    "<rootDir>/node_modules/jest-serializer-vue"   ],  "moduleNameMapper": {    "^@/(.*)$": "<rootDir>/src/$1", //為了解析webpack配置的alias字段    "^tim-architect/(.*)$": "<rootDir>/tim-architect/$1"  },  "transformIgnorePatterns": [    "node_modules/(?!(yourModuleName))"  ]}

⚠️:transformIgnorePatterns的默認配置是["node_modules"],表示所有的node_modules下的包都不需要babel解析。但是一些3rd庫提供的文件仍然是未編譯的es6語法,jest在解析時會報語法錯誤。因此需要指定白名單,需要那些node_modules下的包被babel轉換。

babel配置:告訴babel你需要用哪些工具去處理一坨(💩香么 ?💩 : 💩 )代碼

推薦使用babel.config.js(babel需要轉換的node_modules同樣生效)而不是.babelrc(當前項目生效)。

{  ..., env: {  test: {   presets: [[    '@babel/env',    {     modules: 'auto', // 現在不能通過webpack來解析s6 module,需要使用babel來解析,所以要開啟     targets: {      node: 'current' // 指定環境為當前node版本,減少解析不識別語法的范圍     }    }   ]],   plugins: [[    '@babel/plugin-transform-runtime', {     corejs: 2,     useESModules: false // 不允許使用es modules,babel需要通過@babel/plugin-transform-modules-commonjs將es module轉換為commonjs模塊解析    }   ]  ] } }}

⚠️:通過babel的env.test指定jest測試時需要的babel配置(同webpack轉換解析時不同),jest會自動識別env.test的配置。

單測文件

理解:

  • 單元測試不應該追求代碼的覆蓋率;
  • 單元測試主要是為了測試組件UI,數據驅動后UI的變化在可控范圍之內;
  • 測試組件應以純組件為主(業務組件邏輯過于復雜或經常變動,涉及到的引入文件過多,不便于測試所有的功能性),純組件作為項目的基礎組件功能性上基本不變化。

遇到的問題總結

1.異步生命周期

vue-test-utils提供了對異步請求方法的mock,文檔如下:https://vue-test-utils.vuejs.org/zh/guides/testing-async-components.html

但是對于生命周期函數是異步的情況要怎么處理呢?以下是親測有效但是有點麻煩的姿勢:

// 假設在異步生命周期方法中,調用的函數是init,那我們就通過jest.fn()提供的方法進行mockinit.default = jest.fn().mockImplementation(() => Promise.resolve(yourValue))// 在Jest提供的全局方法中,調用異步生命周期的方法,以保證每個斷言都是在生命周期之后beforeEach(async () => { init.default.mockClear() await wrapper.vm.$mount() // 異步生命周期里會調用init方法})

2.如果測試文件中包含require.context,請看這一條 :

這時候沒有webpack怎么辦?當然是用別人踩過坑的方法救急!

說實話,如果組件引用了這種東西,我覺得它不夠純潔,還是不要管它好了亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

精品视频在线播放免| 亚洲免费视频一区二区| 国产精品久久一区| 国产精品成熟老女人| 日韩av在线精品| 日日狠狠久久偷偷四色综合免费| 国产精品亚洲片夜色在线| 亚洲无av在线中文字幕| 高清一区二区三区四区五区| 国产精品久久久久久网站| 亚洲人线精品午夜| 欧美日韩一二三四五区| 欧美激情视频三区| 日韩av影视在线| 欧美夜福利tv在线| 国产精品永久免费视频| 尤物yw午夜国产精品视频明星| 欧美精品性视频| 成人黄色短视频在线观看| 国产精品视频yy9099| 久久久www成人免费精品| 亚洲综合社区网| 亚洲www永久成人夜色| 国产欧美在线视频| 精品福利樱桃av导航| 国产精品www| 欧美极度另类性三渗透| 亚洲一区二区中文| 日韩资源在线观看| 中文字幕在线看视频国产欧美在线看完整| 日韩电影大片中文字幕| 亚洲天堂免费观看| 国产97在线观看| 久久久影视精品| 一区二区福利视频| 色偷偷偷亚洲综合网另类| 久久乐国产精品| 国产美女久久精品| 国产精品嫩草影院久久久| 亚洲欧美激情视频| 亚洲欧美日韩天堂| 97国产精品视频人人做人人爱| 国产欧美日韩精品专区| 国产日韩精品在线播放| 在线观看日韩欧美| 久久久噜噜噜久久中文字免| 456国产精品| 国产精品欧美激情在线播放| 国产69精品久久久久9999| 一区二区三区回区在观看免费视频| 欧美一级大片在线免费观看| 日本久久久久久久| 欧美成人性生活| 久久久精品久久久久| 久久91亚洲精品中文字幕奶水| 日韩最新免费不卡| 欧美成人三级视频网站| 欧美精品18videos性欧| 久久久久久97| 亚洲成av人影院在线观看| 成人中心免费视频| 日韩天堂在线视频| 亚洲毛片一区二区| 日韩欧中文字幕| 正在播放亚洲1区| 欧美日韩中国免费专区在线看| 欧美日韩激情视频8区| 久久久噜噜噜久久| 国产精品视频26uuu| 68精品久久久久久欧美| 68精品久久久久久欧美| 性欧美激情精品| 欧美一级电影久久| 久久深夜福利免费观看| 国产精品一二三视频| 欧美大荫蒂xxx| 日韩**中文字幕毛片| 欧美另类极品videosbestfree| 尤物精品国产第一福利三区| 久久精品中文字幕免费mv| 日本不卡免费高清视频| 国产一区二区三区在线观看网站| 日韩中文字幕在线观看| 日韩高清欧美高清| 日韩免费在线电影| 国产在线拍偷自揄拍精品| 九九热r在线视频精品| 欧美日韩一区二区在线| 亚洲石原莉奈一区二区在线观看| 深夜精品寂寞黄网站在线观看| 色综久久综合桃花网| 久久这里有精品视频| 国产精品三级网站| 亚洲久久久久久久久久| 久久99久久99精品免观看粉嫩| 7777精品久久久久久| 尤物精品国产第一福利三区| 日韩精品在线电影| 96sao精品视频在线观看| 国产精品大陆在线观看| 欧美黄色免费网站| 日韩精品在线视频| 国产成人精品久久亚洲高清不卡| 日韩av一区在线观看| 欧美在线中文字幕| 精品久久中文字幕久久av| 欧美电影免费观看高清完整| 爱福利视频一区| 精品精品国产国产自在线| 久久av中文字幕| 国产精品黄色av| 亚洲国产成人精品电影| 中文字幕日韩在线播放| 亚洲国产中文字幕在线观看| 亚洲娇小xxxx欧美娇小| 日韩在线高清视频| 亚洲三级黄色在线观看| 91久久久久久国产精品| 国产欧美日韩综合精品| 亚洲乱码一区av黑人高潮| 国产精品老女人精品视频| 欧美性猛交xxxx偷拍洗澡| 992tv在线成人免费观看| 久久久国产精品亚洲一区| 8x海外华人永久免费日韩内陆视频| 欧美精品videos| 69久久夜色精品国产69乱青草| 日本精品久久电影| 欧美寡妇偷汉性猛交| 91国产精品91| 久久久久五月天| 国产亚洲精品一区二区| 欧美视频中文在线看| 色先锋久久影院av| 狠狠躁18三区二区一区| 国产香蕉精品视频一区二区三区| 国产精品一区二区在线| 欧美大片第1页| 国产精品免费视频久久久| 日日噜噜噜夜夜爽亚洲精品| 亚洲成人aaa| 国产福利精品在线| 亚洲国产精品网站| 国产一区二区在线播放| 成人免费淫片视频软件| 国产精品色午夜在线观看| 久久人人爽国产| 亚洲第一福利网站| 日韩av中文在线| 欧美色另类天堂2015| 日本视频久久久| 国产在线98福利播放视频| 亚洲专区中文字幕| 成人久久18免费网站图片| 久久影视免费观看| 不卡av在线播放| 91高清视频免费观看| 亚洲а∨天堂久久精品喷水| 亚洲亚裔videos黑人hd| 国产欧美一区二区三区久久人妖| 亚洲国产欧美精品| 在线免费观看羞羞视频一区二区| 成人h视频在线观看播放| 亚洲视频电影图片偷拍一区|