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

Jest:目前最廣泛使用的前端 JavaScript 測試框架

開發 前端
學習如何測試異步代碼[5],主要有 2 種異步調用方式:回調和 Promise?;卣{是通過 done? 函數,Promise 則有多種測試方式:直接返回、使用 async await、或者配合前面任意種一方式直接丟給 expect? 函數(類似 return|await expect(promise).resolves|rejects.toBe())。

本文轉載自微信公眾號「寫代碼的寶哥」,作者寫代碼的寶哥。轉載本文請聯系寫代碼的寶哥公眾號。

Jest 是一個簡單易用的 JavaScript 測試框架。最初由 Meta 公司團隊維護。2022 年 5 月,Meta 公司正式將自己的開源項目Jest 移交給 OpenJS Foundation[1],這表示 Jest 由公司驅動變為社區驅動,有 OpenJS Foundation 保底,Jest 將不會因公司發展需要而停止維護。

下面我們就來學習吧。

快速上手

初始化項目

首先創建項目目錄:

mkdir jest-demos && cd jest-demos
npm init -y

然后,安裝 Jest 依賴:

npm install --save-dev jest

第一個測試文件

創建待測試文件 src/sum.js:

function sum(a, b) {
  return a + b;
}
module.exports = sum;

創建測試文件 __tests__/sum.test.js:

const sum = require('../src/sum');

test('adds 1 + 2 to equal 3', () => {
  expect(sum(1, 2)).toBe(3);
});

注:按照約定,測試文件以 .test.js 或 .spec.js 結尾,并且放在 __tests__ 目錄中。

package.json 文件中增加腳本:

{
  "scripts": {
    "test": "jest"
  }
}

終端上執行命令 npm test,查看結果。

圖片圖片

這樣我們就完成了第一個測試文件的編寫和集成。

存在的問題

不過目前存在 2 個問題:

  • Jest 只支持 CommonJS 代碼,并不支持 ES Module 代碼,為了測試 ES Module 代碼,我們只能將 ES Module 代碼轉換為 CommonJS 代碼
  • Jest 也不支持 TypeScript 代碼

如何解決呢?有 2 個方案:

  1. 使用 Babel + @babel/preset-env + @babel/preset-typescript 的組合,或者
  2. 使用 ts-jest(基于 TypeScript)

不過為了得到完整的類型檢查支持,我們選擇 ts-jest。下面就來學習。

配置 ts-jest

ts-jest 本質上就是 Jest transformer,支持你在 TypeScript 項目里使用 Jest。

這部分配置我們參照官方教程[2]。

安裝必要依賴

首先安裝必要依賴:

npm install --save-dev ts-jest jest typescript @types/jest
  • ts-jest 是我們必須要安裝的
  • ts-jest 依賴 jest 和 typescript,因此也安裝下(jest 在上一步已經安裝,所以在這里是可選的)
  • 安裝 @types/jest 是為了獲取類型提示支持

生成配置文件

然后,生成 Jest 配置文件——這里借助 ts-jest 指令來生成:

npx ts-jest config:init

這一步會在項目根目錄下創建 jest.config.js 文件:

/** @type {import('ts-jest').JestConfigWithTsJest} */
module.exports = {
  preset: 'ts-jest',
  testEnvironment: 'node',
};

修改文件后綴

將 src/sum.js 和 __tests__/sum.test.js 的文件后綴改成 .ts,并將代碼改成 ES Module 方式組織。

// src/sum.ts
function sum(a, b) {
  return a + b;
}
export default sum;
// __tests__/sum.test.ts
import sum from "../src/sum";

test("adds 1 + 2 to equal 3", () => {
  expect(sum(1, 2)).toBe(3);
});

終端上執行命令 npm test,查看結果。

圖片圖片

也成功了。不過有一條告警,建議我們將 tsconfig.json 中的 esModuleinterop 字段設置成 true。

釋出 tsconfig.json

為了設置 esModuleinterop 字段,我們將 tsconfig.json 文件釋放出來。

$ npx tsx --init

Created a new tsconfig.json with:         
                                           TS
  target: es2016
  module: commonjs
  strict: true
  esModuleInterop: true
  skipLibCheck: true
  forceConsistentCasingInFileNames: true

釋出的配置中包含 esModuleInterop: true 選擇,因此我們也無需修改。不過因為開啟了嚴格模式(strict: true),因此還要對源代碼做類型注解。

// src/sum.ts
function sum(a: number, b: number) {
  return a + b;
}
export default sum;

再次運行測試——成功!

圖片圖片

下一步

以上,我們就學完了 Jest 基礎使用和配置的部分的內容。下一步大家可以在 Jest 官網上按照下面的順序自行學習。

  1. 學習匹配器(Matcher)的使用[3],常用的匹配器有 .toBe()、.toEqual() 和 .toStrictEqual(),完整列表參見這里:https://jestjs.io/docs/expect[4]
  2. 學習如何測試異步代碼[5],主要有 2 種異步調用方式:回調和 Promise?;卣{是通過 done 函數,Promise 則有多種測試方式:直接返回、使用 async await、或者配合前面任意種一方式直接丟給 expect 函數(類似 return|await expect(promise).resolves|rejects.toBe())
  3. 學習使用跟啟動、清理相關的一些調用周期函數[6]。比如:beforeAll()、beforeEach()。同時 Jest 還提供了類似 test.only()/describe.only() 的函數,讓你僅測試一小部分的代碼
  4. 學習 Mock 函數的使用[7]。這部分的內容經常會用到,比如 Mock 函數的創建、實現和使用、如果 Mock 第三方模塊(全部和局部)
  5. 學習如何配置瀏覽器環境的測試[8](利用 jsdom),需要安裝 jest-environment-jsdom

References

[1]OpenJS Foundation:https://jestjs.io/blog

[2]官方教程:https://kulshekhar.github.io/ts-jest/docs/getting-started/installation

[3]匹配器(Matcher)的使用:https://jestjs.io/docs/using-matchers

[4]https://jestjs.io/docs/expect:https://jestjs.io/docs/expect

[5]測試異步代碼:https://jestjs.io/docs/asynchronous

[6]使用跟啟動、清理相關的一些調用周期函數:https://jestjs.io/docs/setup-teardown

[7]學習 Mock 函數的使用:https://jestjs.io/docs/mock-functions

[8]如何配置瀏覽器環境的測試:https://jestjs.io/docs/tutorial-jquery

責任編輯:武曉燕 來源: 寫代碼的寶哥
相關推薦

2010-06-07 10:24:14

InformaticaPowerCenterETL

2021-06-26 07:40:21

前端自動化測試Jest

2023-05-18 14:01:00

前端自動化測試

2009-02-23 10:17:36

Javascript框架應用

2019-07-17 22:07:14

前端開發框架

2021-10-12 19:16:26

Jest單元測試

2016-05-03 14:31:47

Linux桌面環境KDE

2015-08-24 13:16:55

云服務Office 365Salesforce

2022-08-09 13:08:27

VitestJest前端

2013-04-23 14:45:39

康普iTRACSDCIM

2015-09-10 15:19:26

UbuntuLinux操作系統

2022-01-06 22:04:03

JavaScript語言開發

2017-04-26 14:02:13

華為

2024-01-05 07:43:04

2023-01-31 16:35:34

JavaScript測試框架

2020-03-19 14:50:31

Reac單元測試前端

2017-12-15 10:00:46

前端框架Vue.js

2023-04-27 08:23:38

JavaScriptVue.jsMVVC

2020-09-01 13:10:42

JavaScript開發 技巧

2022-10-26 08:00:49

單元測試React
點贊
收藏

51CTO技術棧公眾號

99精品国产高清一区二区| 亚洲第一福利网| 在线免费观看成人网| 国产一区二区波多野结衣| 婷婷综合久久| 亚洲国产欧美一区二区丝袜黑人 | 精品女同一区二区三区在线播放| 欧美日韩精品免费观看| 91国内精品视频| 亚洲精选国产| 色悠悠久久久久| 精品人妻一区二区免费| 国产综合av| 亚洲一二三级电影| 在线观看一区欧美| 三级做a全过程在线观看| 精品一区二区三区免费播放| 午夜精品理论片| 日本少妇aaa| 国产劲爆久久| 在线综合视频播放| av无码精品一区二区三区| 久久免费电影| 亚洲三级在线观看| 午夜精品一区二区三区在线观看 | 亚洲欧洲在线免费| 图片区偷拍区小说区| 国产福利一区二区三区在线播放| 午夜视频一区二区三区| 中国一级黄色录像| 午夜视频在线免费观看| 91视视频在线观看入口直接观看www | 久久精品亚洲一区二区三区浴池| 91青青草免费在线看| 91麻豆精品在线| 裸体一区二区| 欧美最猛黑人xxxx黑人猛叫黄| 久久久久成人精品无码| 精品推荐蜜桃传媒| 白白色 亚洲乱淫| 亚洲精品免费av| 在线观看毛片av| 久久资源在线| 日本久久久a级免费| 亚欧洲精品在线视频| 国产精品s色| 欧美午夜不卡视频| 欧美日韩一区二区在线免费观看| av资源一区| 亚洲午夜精品久久久久久久久| 日韩视频在线观看视频| 欧美69xxx| 日韩美女啊v在线免费观看| 亚洲综合第一| 日本视频在线| 亚洲欧美日韩国产一区二区三区| 最新国产精品久久| 成人在线视频亚洲| 亚洲精品成a人| 97av中文字幕| 波多野结衣中文在线| 亚洲国产成人va在线观看天堂| 国产玉足脚交久久欧美| 97人人爽人人澡人人精品| 性做久久久久久久免费看| 看av免费毛片手机播放| 成人性生活视频| 在线一区二区三区| 亚洲娇小娇小娇小| 国产激情精品一区二区三区| 日韩欧美成人激情| 水蜜桃av无码| 国产欧美日韩视频在线| 综合网中文字幕| 少妇aaaaa| 在线观看视频免费一区二区三区| 亚洲2020天天堂在线观看| 精品欧美一区二区三区免费观看 | 欧美专区福利免费| 在线观看一区二区视频| а 天堂 在线| 91精品啪在线观看国产手机| 亚洲精品美女久久久久| 日本一卡二卡在线播放| 永久亚洲成a人片777777| 久久久久亚洲精品| 日韩免费av网站| 裸体在线国模精品偷拍| 成人久久18免费网站漫画| 在线精品免费视| 奇米影视一区二区三区小说| 亚洲综合成人婷婷小说| 午夜在线视频免费| 国产精品久久久久影院亚瑟| 成人黄色大片网站| 91p九色成人| 精品美女被调教视频大全网站| 性欧美成人播放77777| 99久久.com| 91超碰中文字幕久久精品| 在线观看中文字幕2021| 成人少妇影院yyyy| 亚洲成色最大综合在线| 黄视频在线免费看| 欧美色图12p| 亚洲精品国产成人av在线| 亚洲视频一区在线| 国产精品香蕉视屏| 人成免费电影一二三区在线观看| 欧美国产精品劲爆| 亚洲熟妇无码一区二区三区| 粉嫩av一区二区三区四区五区| 精品久久一区二区三区| 国产探花视频在线| 亚洲深夜影院| 91黄在线观看| 91在线播放网站| av一区二区三区| 在线视频不卡国产| 日韩新的三级电影| 亚洲二区中文字幕| 2021亚洲天堂| 精品一区二区三区影院在线午夜 | 亚洲国产视频一区二区| wwww.国产| 免费成人av| 97人洗澡人人免费公开视频碰碰碰| 国产精品伦理一区| 天堂中文在线8| 中文字幕亚洲一区二区av在线| 国产原创popny丨九色| 玖玖精品一区| www.日本久久久久com.| 日本精品入口免费视频| 91视频www| 大j8黑人w巨大888a片| 97久久超碰| 久久99精品视频一区97| 97av免费视频| 国产精品久久久久毛片软件| 88av.com| japanese国产精品| 国产精品成人在线| 国产在线视频你懂得| 一本在线高清不卡dvd| 国产激情视频网站| 亚洲国产高清一区二区三区| 国产精品免费一区二区| 欧美bbbxxxxx| 亚洲福利在线观看| 奇米影视第四色777| 99久久精品国产一区| 狠狠干 狠狠操| 香蕉精品久久| 国产999视频| 成人高清免费在线播放| 欧美色倩网站大全免费| 免费黄色国产视频| 国产一区二区三区在线观看免费视频| 亚洲亚洲精品三区日韩精品在线视频| 国产精品videossex撒尿| 日韩中文字幕久久| 99热这里只有精品99| 亚洲激情五月婷婷| 国产精品亚洲一区二区无码| 99精品视频免费观看| 蜜桃av久久久亚洲精品| 日韩高清成人| 俺也去精品视频在线观看| 国产精品国产一区二区三区四区 | 亚洲成人av影片| 国产欧美日韩精品一区| 91视频这里只有精品| 欧美国产免费| 精品免费国产| 午夜无码国产理论在线| www国产亚洲精品久久网站| 国产黄色av网站| 五月激情丁香一区二区三区| 国产又粗又猛又爽视频| 精品一区二区三区的国产在线播放| 法国空姐在线观看免费| 免费萌白酱国产一区二区三区| 国产成人精品在线视频| 黄色在线免费网站| 亚洲精品国产精品国自产在线| 成人免费毛片视频| 亚洲欧美一区二区三区久本道91| 91九色蝌蚪porny| 日本aⅴ免费视频一区二区三区| 日韩不卡一二区| 日韩大胆成人| 成人综合网网址| xxx欧美xxx| 久久成人精品电影| 免费av在线电影| 日韩欧美二区三区| 中国a一片一级一片| 亚洲午夜三级在线| 午夜一区二区三区| 日韩一区中文| 91地址最新发布| 日韩在线免费电影| 日韩av网站电影| 国产成人精品一区二三区四区五区 | 极品盗摄国产盗摄合集| 久久婷婷国产综合精品青草| 伊人精品视频在线观看| 鲁大师成人一区二区三区| 人妻无码一区二区三区四区| 欧美一级淫片| 久久青青草综合| 66精品视频在线观看| 91精品在线一区| 欧亚一区二区| 97久久久久久| 日韩精品卡一| 久久亚洲精品小早川怜子66| 久草在线青青草| 亚洲高清久久久久久| 国产人妖一区二区| 粉嫩av一区二区三区| 成人天堂噜噜噜| 伊人久久精品一区二区三区| 久久777国产线看观看精品| 电影在线高清| 亚洲欧洲中文天堂| 香蕉视频911| 日韩精品一区二区三区视频播放| 中文字幕精品在线观看| 色综合欧美在线| 可以免费看的av毛片| 亚洲一区二区在线观看视频| 午夜国产小视频| 国产精品九色蝌蚪自拍| 三区四区在线观看| 国产日产欧美一区二区三区| 亚洲精品理论片| 26uuu久久天堂性欧美| 影音先锋黄色资源| 成人aaaa免费全部观看| 年下总裁被打光屁股sp| 国产91精品一区二区麻豆网站| 五月天婷婷影视| 韩国av一区二区三区| 中文字幕亚洲欧洲| 精品一区二区三区免费视频| 午夜精品中文字幕| 国产一区二区在线看| 天天干天天曰天天操| 伊人影院蕉久影院在线播放| 久久综合九色九九 | 久久精品国产亚洲精品2020| 在线免费观看黄| 日韩一区二区精品视频| 欧美成人性生活视频| 久久偷看各类女兵18女厕嘘嘘| 黄av在线免费观看| 九九久久久久久久久激情| 天天色天天射天天综合网| 欧美精品videosex性欧美| 成人性生交大片免费看网站 | 精品国产不卡一区二区| 亚洲xxx视频| 久久超级碰碰| 欧美人xxxxx| 色婷婷亚洲mv天堂mv在影片| 裸体裸乳免费看| 一本一道久久综合狠狠老精东影业| 国产精品333| 免费久久99精品国产| 成年人网站av| av在线播放不卡| 国产黄色录像视频| 亚洲欧美另类久久久精品 | 欧洲人成人精品| 91在线公开视频| 亚洲а∨天堂久久精品9966| 青青草视频在线观看| 日韩中文字幕精品视频| missav|免费高清av在线看| 日韩av观看网址| 精品视频一区二区三区| 久久久影院一区二区三区| 欧美视频免费| www.日本在线播放| 蜜臀久久久久久久| 国产51自产区| 欧美激情一区二区三区四区| 久久午夜鲁丝片午夜精品| 色哟哟在线观看一区二区三区| 在线免费看av片| 精品久久久久一区| 成人激情电影在线看| 欧美激情国内偷拍| 99久久伊人| 国内精品视频免费| 外国成人免费视频| 日韩毛片在线免费看| 国产乱码一区二区三区| 亚欧洲乱码视频| 有坂深雪av一区二区精品| 精品乱码一区内射人妻无码| 精品国产伦理网| 午夜在线免费观看视频| 国产91精品高潮白浆喷水| 91成人福利社区| 日韩av一级大片| 亚洲精品社区| 精品人妻一区二区三| 欧美国产1区2区| 精品欧美一区二区三区免费观看| 欧美一级专区免费大片| 北岛玲日韩精品一区二区三区| 久久久久久中文字幕| 精品国产乱码久久久久久樱花| 欧美黑人xxxxx| 亚洲第一网站| 国产大尺度视频| 亚洲激情图片小说视频| 国产又粗又黄又爽| 影音先锋日韩有码| 台湾成人免费视频| 蜜桃av噜噜一区二区三区| 亚洲高清电影| 精品无码av一区二区三区不卡| 国产精品久久久久7777按摩| 中日精品一色哟哟| 亚洲视频专区在线| 成人免费影院| 欧洲一区二区日韩在线视频观看免费| 激情综合激情| 性高潮久久久久久| 亚洲激情图片qvod| www.av在线.com| 欧美日本高清视频| 精品视频一区二区三区在线观看| 伊人久久大香线蕉精品| 蜜桃av噜噜一区二区三区小说| 免费看黄色av| 欧美午夜在线观看| www黄在线观看| 国产区精品在线观看| 日韩成人三级| 久久久久久久久久久久久久久国产| 欧美高清在线一区二区| 最新黄色网址在线观看| 色999日韩欧美国产| 免费一级欧美在线观看视频| 一区二区精品视频| 国产一区在线视频| 久草视频在线资源| 337p日本欧洲亚洲大胆色噜噜| 成人在线黄色电影| 久久久久资源| 蜜臀av性久久久久蜜臀aⅴ| 黄色av片三级三级三级免费看| 欧美另类久久久品| a视频在线免费看| 国产精品12| 亚洲尤物精选| 黑人と日本人の交わりビデオ| 欧美日韩久久久一区| 中文在线手机av| 国产亚洲精品自在久久| 久久综合伊人| 国产免费一区二区三区四区| 日韩免费一区二区三区在线播放| 电影k8一区二区三区久久 | 成人性爱视频在线观看| 国产日韩欧美日韩| 欧美freesex交免费视频| 国模无码视频一区| 日本久久一区二区三区| 在线免费av电影| 国产精品swag| 久久免费黄色| 最新一区二区三区| 亚洲国产精品美女| 欧美美女福利视频| 国产传媒久久久| 国产欧美视频在线观看| 国产av一区二区三区精品| 欧美在线免费看| 国产精品99在线观看| 色呦呦一区二区| 91精品免费观看| 欧美激情护士| 欧美h视频在线观看| 波波电影院一区二区三区| 中文字幕丰满人伦在线| 久久久久久久久久婷婷| 欧美午夜精彩| jlzzjizz在线播放观看| 欧美乱妇23p| 春暖花开亚洲一区二区三区| 国产精品三级一区二区| 国产欧美日韩久久| 五月天婷婷在线观看| 91在线观看欧美日韩|