国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

單元測(cè)試(jest):理解、安裝、使用

這篇具有很好參考價(jià)值的文章主要介紹了單元測(cè)試(jest):理解、安裝、使用。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

一、理解單元測(cè)試的重要性

bug發(fā)現(xiàn)在開發(fā)階段,成本很低,
如果發(fā)現(xiàn)在生產(chǎn)環(huán)境,成本很高,
如果是關(guān)鍵時(shí)刻,決定人生命運(yùn),決定企業(yè)發(fā)展。

從技術(shù)的角度講,有效的提高代碼的健壯性,有效的增加代碼的可維護(hù)性,對(duì)于后期的代碼重構(gòu)是必要條件。

從團(tuán)隊(duì)的角度講,開發(fā)人員的代碼經(jīng)過(guò)完整的單元測(cè)試,可以有效的減少測(cè)試成本,維護(hù)成本,運(yùn)維成本,運(yùn)營(yíng)成本。

不要存在bug不會(huì)被發(fā)現(xiàn)的僥幸心理,我的經(jīng)驗(yàn),bug不是在開發(fā)階段發(fā)現(xiàn)就是在測(cè)試階段發(fā)現(xiàn),不是在測(cè)試階段發(fā)現(xiàn)就是在生產(chǎn)環(huán)境被用戶發(fā)現(xiàn)。終究會(huì)暴露,越早越好。

寫了單元測(cè)試,我們可以有信心(有依據(jù))的告訴用戶我的程序是多么的健壯。
寫了單元測(cè)試,我們可以有效的培養(yǎng)自己做人、做事的高度。
寫了單元測(cè)試,是我們工匠精神的體現(xiàn)。

二、jest與項(xiàng)目環(huán)境介紹

2.1、Jest:Facebook 的一套開源的 JavaScript 測(cè)試框架, 它自動(dòng)集成了斷言、JSDom、覆蓋率報(bào)告等開發(fā)者所需要的所有測(cè)試工具,是一款幾乎零配置的測(cè)試框架。

2.2、環(huán)境:vue3?+ ts + vite2 + pinia + jest + pnpm

三、jest單元測(cè)試實(shí)踐

3.1、安裝

pnpm add babel-jest@latest?jest@latest?ts-jest@latest?-D?
pnpm add @babel/core @babel/preset-env babel-plugin-transform-es2015-modules-commonjs @vue/test-utils @vue/vue3-jest jest-transform-stub @types/jest -D

jest:提供單元測(cè)試能力
ts-jest:Typescript 開發(fā)語(yǔ)言的預(yù)處理器
@vue/test-utils:對(duì) Vue 組件進(jìn)行測(cè)試(Vue 官方提供)
@vue/vue3-jest:將 Vue SFC(單文件組件)轉(zhuǎn)換為 Jest 可執(zhí)行的 JavaScript 代碼
babel-jest:將非標(biāo)準(zhǔn) JavaScript 代碼(JSX/TSX)轉(zhuǎn)換為 Jest 可執(zhí)行的 JavaScript 代碼
@babel/preset-env:提供測(cè)試時(shí)最新的 JavaScript 語(yǔ)法的 Babel Preset
@babel/preset-typescript:提供測(cè)試時(shí)TypeScript 語(yǔ)法的 Babel Preset
@vue/babel-plugin-jsx:提供測(cè)試時(shí)在 Vue 中使用 JSX/TSX 語(yǔ)法的 Babel Plugin
@vitejs/plugin-vue-jsx:提供開發(fā)時(shí)在 Vue 中使用 JSX/TSX 語(yǔ)法的 Vite Plugin
jest-transform-stub:將非 JavaScript 文件轉(zhuǎn)換為 Jest 可執(zhí)行的 JavaScript 代碼

jest測(cè)試,前端,單元測(cè)試,jest?jest測(cè)試,前端,單元測(cè)試,jest

3.2、根目錄新建jest.config.js

export default {
    preset: 'ts-jest',
    roots: ['<rootDir>/tests/'],
    clearMocks: true,
    moduleDirectories: ['node_modules', 'src'],
    moduleFileExtensions: ['js', 'ts', 'vue', 'tsx', 'jsx', 'json', 'node'],
    modulePaths: ['<rootDir>/src', '<rootDir>/node_modules'],
    testMatch: [
      '**/tests/**/*.[jt]s?(x)',
      '**/?(*.)+(spec|test).[tj]s?(x)',
      '(/__tests__/.*|(\\.|/)(test|spec))\\.(js|ts)$',
    ],
    testPathIgnorePatterns: [
      '<rootDir>/tests/server/',
      '<rootDir>/tests/__mocks__/',
      '/node_modules/',
    ],
    transform: {
      '^.+\\.ts?$': 'ts-jest',
      '^.+\\.vue$': '@vue/vue3-jest',// 使用 vue-jest 幫助測(cè)試 .vue 文件
      '^.+\\.(js|jsx)?$': 'babel-jest',// 遇到 js jsx 等轉(zhuǎn)成 es5
      '.+\\.(css|styl|less|sass|scss|svg|png|jpg|ttf|woff|woff2)$': 'jest-transform-stub',// 遇到 css 等轉(zhuǎn)為字符串 不作測(cè)試
    },
    transformIgnorePatterns: ['<rootDir>/tests/__mocks__/', '/node_modules/'],
    // A map from regular expressions to module names that allow to stub out resources with a single module
    moduleNameMapper: {
      '\\.(vs|fs|vert|frag|glsl|jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$':
        '<rootDir>/tests/__mocks__/fileMock.ts',
      '\\.(sass|s?css|less)$': '<rootDir>/tests/__mocks__/styleMock.ts',
      '\\?worker$': '<rootDir>/tests/__mocks__/workerMock.ts',
      '^/@/(.*)$': '<rootDir>/src/$1',
    },
    testEnvironment: 'jsdom',
    verbose: true,
    collectCoverage: false,
    coverageDirectory: 'coverage',
    collectCoverageFrom: ['src/**/*.{js,ts,vue}'],
    coveragePathIgnorePatterns: ['^.+\\.d\\.ts$'],
  }

3.3、根目錄新建babel.config.js

module.exports = {
    presets: [
        [
            "@babel/preset-env",
            {
                targets: {
                    node: "current"
                }
            }
        ]
    ],
    plugins: ["transform-es2015-modules-commonjs"]
  }

3.4、package.json

jest測(cè)試,前端,單元測(cè)試,jest

?"unit:test": "jest"

3.5、根目錄創(chuàng)建tests文件,用來(lái)放單元測(cè)試文件

jest測(cè)試,前端,單元測(cè)試,jest

3.6、創(chuàng)建一個(gè)utils

src/utils/index.ts

  // 數(shù)字千位分隔顯示123456 =》123,456
  export const formatNumber=(value: string) =>{
    value += '';
    const list = value.split('.');
    const prefix = list[0].charAt(0) === '-' ? '-' : '';
    let num = prefix ? list[0].slice(1) : list[0];
    let result = '';
  
    if (num.length > 3) {
      result = `,${num.slice(-3)}${result}`;
      num = num.slice(0, num.length - 3);
    }
  
    if (num) {
      result = num + result;
    }
  
    return `${prefix}${result}${list[1] ? `.${list[1]}` : ''}`;
  }

3.7、創(chuàng)建utils的單元測(cè)試

tests/units.spec.ts

import {formatNumber} from '../src/utils/index'
test('格式化數(shù)字123456顯示為123,456', () => {
  expect(formatNumber('123456')).toBe('123,456');
})

3.8、運(yùn)行pnpm unit:test

pnpm unit:test

jest測(cè)試,前端,單元測(cè)試,jest

測(cè)試通過(guò)

四、過(guò)程記錄

4.1、

jest測(cè)試,前端,單元測(cè)試,jest

?解:我理解,我項(xiàng)目是vite項(xiàng)目,不是vue-cli項(xiàng)目,不能使用這個(gè)命令安裝jest

4.2、

jest測(cè)試,前端,單元測(cè)試,jest

?解:

pnpm add @types/jest

jest測(cè)試,前端,單元測(cè)試,jest

4.3、

jest測(cè)試,前端,單元測(cè)試,jest

解:jest升級(jí)版本超過(guò)27出現(xiàn)的問(wèn)題

pnpm add jest-environment-jsdom

?javascript - 將 Jest 升級(jí)到 v28 - 找不到錯(cuò)誤測(cè)試環(huán)境 jest-environment-jsdom - 堆棧內(nèi)存溢出

4.4、另外一個(gè)項(xiàng)目嘗試使用jest遇到問(wèn)題如下,未解決

處理require is not defined in ES module scope, you can use import instead報(bào)錯(cuò)

jest測(cè)試,前端,單元測(cè)試,jest

pnpm add?@babel/plugin-transform-modules-commonjs

package.json增加配置

"babel": {
    "plugins": [
      "@babel/plugin-transform-modules-commonjs"
    ]
  }

嘗試了一些方法,沒(méi)有成功,,后來(lái)更改了jest.config.js配置,避免了這個(gè)問(wèn)題?

4.5、

vue-cli項(xiàng)目可以使用如下命令增加jest單元測(cè)試能力:

vue add @vue/cli-plugin-unit-jest

未測(cè)試?

4.6、

記得之前創(chuàng)建項(xiàng)目的時(shí)候可以選擇測(cè)試工具,這里我們也嘗試一些,沒(méi)有發(fā)現(xiàn),所以我們自己安裝jest

pnpm create vite

jest測(cè)試,前端,單元測(cè)試,jest

親測(cè),新建項(xiàng)目,沒(méi)有選擇測(cè)試工具的選項(xiàng),,如果后續(xù)有發(fā)現(xiàn)再補(bǔ)充

五、歡迎交流指正,關(guān)注我,一起學(xué)習(xí)。

參考鏈接:

標(biāo)簽[ts-jest] 最普遍問(wèn)題 - 堆棧內(nèi)存溢出

好文-vue3+vite+jest配置 單元測(cè)試總結(jié)_火辣辣-的博客-CSDN博客_vite 單元測(cè)試

@babel/plugin-transform-modules-commonjs · Babel 中文網(wǎng)

vue3 + vite + typescript + eslint + jest 項(xiàng)目配置實(shí)踐-技術(shù)圈

關(guān)于Vue中用jest測(cè)試_城北的徐公的博客-CSDN博客_vue-jest

Vue3項(xiàng)目實(shí)踐jest,學(xué)會(huì)了升職加薪(上篇)_梅花十三兒的博客-CSDN博客

vite + vue3 + ts + jest 測(cè)試 - boyyang - 博客園

Jest入門文檔 - 掘金

【前端測(cè)試】第0章 - 為什么要做單元測(cè)試?_嗶哩嗶哩_bilibili文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-780205.html

到了這里,關(guān)于單元測(cè)試(jest):理解、安裝、使用的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 快速上手 Jest 單元測(cè)試框架:使用 Jest Preset 加速配置,靈活應(yīng)對(duì)項(xiàng)目需求

    Jest preset 參數(shù)的作用是提供一個(gè)預(yù)先定義好的配置集合,以便于快速開始使用 Jest 單元測(cè)試框架。你可以選擇現(xiàn)有的 preset,如 jest-preset-angular 、 create-react-app 或自定義 preset,以根據(jù)你的項(xiàng)目需求自動(dòng)應(yīng)用一系列配置。 使用示例: 先安裝一個(gè)現(xiàn)有的 preset,例如 jest-preset-angul

    2024年02月06日
    瀏覽(29)
  • 使用 Jest 在 Visual Studio Code 中進(jìn)行更好的單元測(cè)試

    使用 Jest 在 Visual Studio Code 中進(jìn)行更好的單元測(cè)試

    目錄 前言: 使用 Jest 擴(kuò)展顯著改善測(cè)試流程 1.自動(dòng)啟動(dòng) Jest 測(cè)試 2. 顯示單個(gè)失敗/通過(guò)的測(cè)試用例 允許調(diào)試單元測(cè)試 在文件中顯示代碼覆蓋率 結(jié)論 前言: Jest是一個(gè)流行的JavaScript測(cè)試框架,它提供了簡(jiǎn)潔、靈活和強(qiáng)大的工具來(lái)編寫和運(yùn)行單元測(cè)試。在Visual Studio Code(VS C

    2024年02月13日
    瀏覽(20)
  • 在單元測(cè)試中使用Jest模擬VS Code extension API

    對(duì)VS Code extension進(jìn)行單元測(cè)試時(shí)通常會(huì)遇到一個(gè)問(wèn)題,代碼中所使用的VS Code編輯器的功能都依賴于 vscode 庫(kù),但是我們?cè)趩卧獪y(cè)試中并沒(méi)有添加對(duì) vscode 庫(kù)的依賴,所以導(dǎo)致運(yùn)行單元測(cè)試時(shí)出錯(cuò)。由于 vscode 庫(kù)是作為第三方依賴被引入到我們的VS Code extension中的,所以它并不受

    2024年02月14日
    瀏覽(24)
  • 記錄使用vue-test-utils + jest 在uniapp中進(jìn)行單元測(cè)試

    uniapp推薦了測(cè)試方案 @dcloudio/uni-automator ,屬于自動(dòng)化測(cè)試,api提供的示例偏重于渲染組件,判斷當(dāng)前渲染的組件是否和預(yù)期一致 vue推薦的測(cè)試方案 vue test utils ,屬于單元測(cè)試,可以搭配jest、mocha等單測(cè)運(yùn)行器 我選了方案2??? 關(guān)于vue的組件測(cè)試,vue官方提到: 你的 Vue 應(yīng)用

    2024年02月06日
    瀏覽(31)
  • vue jest單元測(cè)試

    vue-test-utils 提供了兩種方式用于渲染,或者說(shuō) 加載(mount) 一個(gè)組件 — mount 和 shallowMount 。一個(gè)組件無(wú)論使用這兩種方法的哪個(gè)都會(huì)返回一個(gè) wrapper ,也就是一個(gè)包含了 Vue 組件 的對(duì)象,輔以一些對(duì)測(cè)試有用的方法。 mount : 會(huì)渲染子組件 shallowMount :會(huì)加載子組件,不會(huì)被

    2024年02月05日
    瀏覽(22)
  • Jest單元測(cè)試(一)

    Jest是Facebook一套開源的 JavaScript 測(cè)試框架,它自動(dòng)集成了斷言、JSDom、覆蓋率報(bào)告等測(cè)試工具。 他適用但不局限于使用以下技術(shù)的項(xiàng)目:Babel, TypeScript, Node, React, Angular, Vue 官網(wǎng)地址:https://jestjs.io/en/ 使用 yarn 安裝 Jest︰ 或 npm: 注:Jest的文檔統(tǒng)一使用yarn命令,不過(guò)使用npm也

    2024年02月16日
    瀏覽(25)
  • vue 引入jest 單元測(cè)試

    vue 引入jest 單元測(cè)試

    為什么要搞單元測(cè)試,好處有什么。 提測(cè)需要, 代碼覆蓋率達(dá)到95%,分支覆蓋率達(dá)到100% ,不達(dá)到要求,不給測(cè)。 確保代碼正確性。單元測(cè)試可以檢測(cè)和發(fā)現(xiàn)代碼中的錯(cuò)誤,在開發(fā)期間及時(shí)糾正。 提高代碼質(zhì)量。進(jìn)行單元測(cè)試可以思考更多場(chǎng)景,添加邊界測(cè)試用例,找到更

    2024年01月18日
    瀏覽(26)
  • vue+jest 單元測(cè)試配置+用例

    目錄 目錄 1 Jest 說(shuō)明文檔 2 1、 搭建node環(huán)境包 2 這里安裝環(huán)境是node 18,npm 9.5.0。 2 Test Runner 2 2、 安裝jest 3 Jest安裝步驟 4 項(xiàng)目的根目錄下創(chuàng)建一個(gè).babelrc 配置文件: 4 在項(xiàng)目的根目錄下創(chuàng)建 jest.config.js 4 3、 全局設(shè)定 5 預(yù)處理和后處理 5 方法 6 4、 斷言 6 真假斷言 6 數(shù)字?jǐn)嘌?/p>

    2024年02月07日
    瀏覽(20)
  • Jest單元測(cè)試Vue項(xiàng)目實(shí)踐

    Jest單元測(cè)試Vue項(xiàng)目實(shí)踐

    ? 做單元測(cè)試的優(yōu)點(diǎn): 1.減少bug避免低級(jí)錯(cuò)誤 2.提高代碼運(yùn)行質(zhì)量 3.快速定位問(wèn)題 4.減少調(diào)試時(shí)間,提高開發(fā)效率 5.便于重構(gòu) Jest安裝: 配置 vueCli內(nèi)置了一套jest配置預(yù)置文件,一般情況下直接引用即可,如有特殊配置可見下文配置釋意。 配置項(xiàng)目釋意 module.exports = { 相關(guān)

    2024年02月12日
    瀏覽(23)
  • jest單元測(cè)試支持ts文件方案

    jest配置 jest配置如下: 額外配置說(shuō)明: 其中transform增加了jest的es6處理能力。默認(rèn)情況下jest只能處理require文件,當(dāng)配置tranform后可以對(duì)impoet文件進(jìn)行處理 prese和testEnvironment為jest增加ts處理能力 注意jest文件應(yīng)當(dāng)放在需要進(jìn)行單元測(cè)試的目錄,jest將按照其配置文件所子目錄按照

    2024年02月14日
    瀏覽(24)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包