AVt天堂网 手机版,亚洲va久久久噜噜噜久久4399,天天综合亚洲色在线精品,亚洲一级Av无码毛片久久精品

當前位置:首頁 > 科技  > 軟件

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

來源: 責編: 時間:2023-11-08 17:03:21 312觀看
導讀Jest 是一個簡單易用的 JavaScript 測試框架。最初由 Meta 公司團隊維護。2022 年 5 月,Meta 公司正式將自己的開源項目Jest 移交給 OpenJS Foundation[1],這表示 Jest 由公司驅動變為社區驅動,有 OpenJS Foundation 保

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

下面我們就來學習吧。g5O28資訊網——每日最新資訊28at.com

快速上手

初始化項目

首先創建項目目錄:g5O28資訊網——每日最新資訊28at.com

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

然后,安裝 Jest 依賴:g5O28資訊網——每日最新資訊28at.com

npm install --save-dev jest

第一個測試文件

創建待測試文件 src/sum.js:g5O28資訊網——每日最新資訊28at.com

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

創建測試文件 __tests__/sum.test.js:g5O28資訊網——每日最新資訊28at.com

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

注:按照約定,測試文件以 .test.js 或 .spec.js 結尾,并且放在 __tests__ 目錄中。g5O28資訊網——每日最新資訊28at.com

package.json 文件中增加腳本:g5O28資訊網——每日最新資訊28at.com

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

終端上執行命令 npm test,查看結果。g5O28資訊網——每日最新資訊28at.com

圖片圖片g5O28資訊網——每日最新資訊28at.com

這樣我們就完成了第一個測試文件的編寫和集成。g5O28資訊網——每日最新資訊28at.com

存在的問題

不過目前存在 2 個問題:g5O28資訊網——每日最新資訊28at.com

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

如何解決呢?有 2 個方案:g5O28資訊網——每日最新資訊28at.com

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

不過為了得到完整的類型檢查支持,我們選擇 ts-jest。下面就來學習。g5O28資訊網——每日最新資訊28at.com

配置 ts-jest

ts-jest 本質上就是 Jest transformer,支持你在 TypeScript 項目里使用 Jest。g5O28資訊網——每日最新資訊28at.com

這部分配置我們參照官方教程[2]。g5O28資訊網——每日最新資訊28at.com

安裝必要依賴

首先安裝必要依賴:g5O28資訊網——每日最新資訊28at.com

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

生成配置文件

然后,生成 Jest 配置文件——這里借助 ts-jest 指令來生成:g5O28資訊網——每日最新資訊28at.com

npx ts-jest config:init

這一步會在項目根目錄下創建 jest.config.js 文件:g5O28資訊網——每日最新資訊28at.com

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

修改文件后綴

將 src/sum.js 和 __tests__/sum.test.js 的文件后綴改成 .ts,并將代碼改成 ES Module 方式組織。g5O28資訊網——每日最新資訊28at.com

// src/sum.tsfunction sum(a, b) {  return a + b;}export default sum;
// __tests__/sum.test.tsimport sum from "../src/sum";test("adds 1 + 2 to equal 3", () => {  expect(sum(1, 2)).toBe(3);});

終端上執行命令 npm test,查看結果。g5O28資訊網——每日最新資訊28at.com

圖片圖片g5O28資訊網——每日最新資訊28at.com

也成功了。不過有一條告警,建議我們將 tsconfig.json 中的 esModuleinterop 字段設置成 true。g5O28資訊網——每日最新資訊28at.com

釋出 tsconfig.json

為了設置 esModuleinterop 字段,我們將 tsconfig.json 文件釋放出來。g5O28資訊網——每日最新資訊28at.com

$ npx tsx --initCreated a new tsconfig.json with:                                                    TS  target: es2016  module: commonjs  strict: true  esModuleInterop: true  skipLibCheck: true  forceConsistentCasingInFileNames: true

釋出的配置中包含 esModuleInterop: true 選擇,因此我們也無需修改。不過因為開啟了嚴格模式(strict: true),因此還要對源代碼做類型注解。g5O28資訊網——每日最新資訊28at.com

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

再次運行測試——成功!g5O28資訊網——每日最新資訊28at.com

圖片圖片g5O28資訊網——每日最新資訊28at.com

下一步

以上,我們就學完了 Jest 基礎使用和配置的部分的內容。下一步大家可以在 Jest 官網上按照下面的順序自行學習。g5O28資訊網——每日最新資訊28at.com

  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/blogg5O28資訊網——每日最新資訊28at.com

[2]官方教程:https://kulshekhar.github.io/ts-jest/docs/getting-started/installationg5O28資訊網——每日最新資訊28at.com

[3]匹配器(Matcher)的使用:https://jestjs.io/docs/using-matchersg5O28資訊網——每日最新資訊28at.com

[4]https://jestjs.io/docs/expect:https://jestjs.io/docs/expectg5O28資訊網——每日最新資訊28at.com

[5]測試異步代碼:https://jestjs.io/docs/asynchronousg5O28資訊網——每日最新資訊28at.com

[6]使用跟啟動、清理相關的一些調用周期函數:https://jestjs.io/docs/setup-teardowng5O28資訊網——每日最新資訊28at.com

[7]學習 Mock 函數的使用:https://jestjs.io/docs/mock-functionsg5O28資訊網——每日最新資訊28at.com

[8]如何配置瀏覽器環境的測試:https://jestjs.io/docs/tutorial-jqueryg5O28資訊網——每日最新資訊28at.com

本文鏈接:http://www.tebozhan.com/showinfo-26-17784-0.htmlJest:目前最廣泛使用的前端 JavaScript 測試框架

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: Java并行編程:利用并發技術加速應用性能

下一篇: 想要微信小程序+Uniapp?XBoot開源項目助你快速開發!

標簽:
  • 熱門焦點
  • 官方承諾:K60至尊版將會首批升級MIUI 15

    全新的MIUI 15今天也有了消息,在官宣了K60至尊版將會搭載天璣9200+處理器和獨顯芯片X7的同時,Redmi給出了官方承諾,K60至尊重大更新首批升級,會首批推送MIUI 15。也就是說雖然
  • vivo TWS Air開箱體驗:真輕 臻好聽

    在vivo S15系列新機的發布會上,vivo的最新款真無線藍牙耳機vivo TWS Air也一同發布,本次就這款耳機新品給大家帶來一個簡單的分享。外包裝盒上,vivo TWS Air保持了vivo自家產
  • 5月安卓手機好評榜:魅族20 Pro奪冠

    性能榜和性價比榜之后,我們來看最后的安卓手機好評榜,數據來源安兔兔評測,收集時間2023年5月1日至5月31日,僅限國內市場。第一名:魅族20 Pro好評率:97.50%不得不感慨魅族老品牌還
  • Python異步IO編程的進程/線程通信實現

    這篇文章再講3種方式,同時講4中進程間通信的方式一、 Python 中線程間通信的實現方式共享變量共享變量是多個線程可以共同訪問的變量。在Python中,可以使用threading模塊中的L
  • 年輕人的“職場羞恥感”,無處不在

    作者:馮曉亭 陶 淘 李 欣 張 琳 馬舒葉來源:燃次元“人在職場,應該選擇什么樣的著裝?”近日,在網絡上,一個與著裝相關的帖子引發關注,在該帖子里,一位在高級寫字樓亞洲金
  • 網紅炒股不為了賺錢,那就是耍流氓!

    來源:首席商業評論6月26日高調宣布入市,網絡名嘴大v胡錫進居然進軍了股市。在一次財經媒體峰會上,幾個財經圈媒體大佬就“胡錫進炒股是否知道認真報道”展開討論。有
  • 造車兩年股價跌六成,小米的估值邏輯變了嗎?

    如果從小米官宣造車后的首個交易日起持有小米集團的股票,那么截至2023年上半年最后一個交易日,投資者將浮虧59.16%,同區間的恒生科技指數跌幅為52.78%
  • OPPO K11樣張首曝:千元機影像“卷”得真不錯!

    一直以來,OPPO K系列機型都保持著較為均衡的產品體驗,歷來都是2K價位的明星機型,去年推出的OPPO K10和OPPO K10 Pro兩款機型憑借各自的出色配置,堪稱有
  • 聯想YOGA 16s 2022筆記本將要推出,屏幕支持觸控功能

    聯想此前宣布,將于11月2日19:30召開聯想秋季輕薄新品發布會,推出聯想 YOGA 16s 2022 筆記本等新品。官方稱,YOGA 16s 2022 筆記本將搭載 16 英寸屏幕,并且是一
Top