仅次于选择益友,就是选择好书。——考尔德

今天分享一个前端的测试框架Vitest

号称是下一代测试框架

github:

https://github.com/vitest-dev/vitest

官方文档:

https://cn.vitest.dev/

这里有个直观的在线例子:

https://vitest.new/

你可以看到比如这里在basic.ts定义了一个squared函数

1
export const squared = (n: number) => n * n

然后对应的单元测试:

1
2
3
4
5
6
import { squared } from '../src/basic.js'

test('Squared', () => {
expect(squared(2)).toBe(4)
expect(squared(12)).toBe(144)
})

其他代码还有

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import { assert, expect, test } from 'vitest'
import { squared } from '../src/basic.js'

// Edit an assertion and save to see HMR in action

test('Math.sqrt()', () => {
expect(Math.sqrt(4)).toBe(2)
expect(Math.sqrt(144)).toBe(12)
expect(Math.sqrt(2)).toBe(Math.SQRT2)
})

test('Squared', () => {
expect(squared(2)).toBe(4)
expect(squared(12)).toBe(144)
})

test('JSON', () => {
const input = {
foo: 'hello',
bar: 'world',
}

const output = JSON.stringify(input)

expect(output).eq('{"foo":"hello","bar":"world"}')
assert.deepEqual(JSON.parse(output), input, 'matches original')
})

整体来讲还算不错,能够提升前端开源项目的健壮性