单元测试

190 阅读1分钟

一、安装 二、配置 由于vite和vitest是统一的配置,直接在vite.config中配置即可。

image.png

注意,这里由于我们是要进行配置vite本身,所以需要在顶端加上三斜线命令

再向package.json中加上如下命令即可开启我们的单元测试之旅:

{
  "scripts": {
    "test": "vitest",
    "coverage": "vitest run --coverage"
  }
}

image.png

describe 描述, decribe会形成一个作用域

it 定义了一组关于测试期望的方法, 它接收测试名称和一个含有测试期望的函数

expect用来创建断言

toBe 可用于断言基础对象是否相等

同时运行多个测试:it.concurrent

import { noop, deepClone, inBrowser, get, toArray } from "../src/basic"
import { describe, expect, it } from "vitest"

it("空函数定义", () => {
  expect(typeof noop).toBe("function");
});

it("判断是否在浏览器环境中", () => {
  expect(typeof inBrowser).toBe("boolean");
});

it("获取对象路径上的值", () => {
  const object = {
    a: {
      b: {
        c: "abc",
      },
    },
  };
  expect(get(object, "a.b.c")).toBe("abc");
});

it("转换为数组", () => {
  expect(toArray(1)).toEqual([1]);
  expect(toArray([1])).toEqual([1]);
});

it("对象深拷贝", () => {
  const object = {
    a: {
      b: {
        c: "abc"
      },
    },
  };
  const cloneObject = deepClone(object);
  expect(cloneObject).toEqual(object);
  expect(cloneObject).not.toBe(object);
});
  • 命令pnpm run test后加--coverage即可生成代码覆盖率报告.

  • Vitest UI界面 pnpm vitest --coverage --ui image.png