学习 Jest - 匹配值

匹配器

相等

test('2 + 2 = 4', () => {
    expect(2 + 2).toBe(4)
})

// toBe 用于测试精确相等性
// 检查对象使用 toEqual
// toEqual 会递归检查对象或数组的每个字段

test('object assignment', () => {
    const data = { one: 1 }
    data['two'] = 2
    expect(data).toEqual({ one: 1, two: 2 })
})

匹配值

test('value is toEqual type', () => {
    const _Null = null
    const _Undefined = undefined
    const _Defined = 'a'
    const _True = true
    const _False = false

    // 仅匹配 null
    expect(_Null).toBeNull()
    // 仅匹配 已定义的值
    expect(_Defined).toBeDefined()
    // 仅匹配 undefined
    expect(_Undefined).toBeUnfined()
    // 仅匹配 true
    expect(_True).toBeTruthy()
    // 仅匹配 false
    expect(_False).toBeFalsy()
})

数字

test('2 + 2', () => {
    const value = 2 + 2

    // >
    expect(value).toBeGreaterThan(3)
    // >=
    expect(value).toBeGreaterThanOrEqual(3.5)
    // <
    expect(value).toBeLessThan(5)
    // <=
    expect(value).toBeLessThanOrEqual(4.5)
    // =
    expect(value).toEqual(4)
    expect(value).toBe(4)
    // 浮点
    expect(value).toBCloseTo(0.3)
})

字符串

test(' There is no I in string', () => {
    // 使用正则匹配字符串
    expect('ABCDEFG').not.toMatch(/I/)
    expect('ABcDEFG').toMatch(/I/)
})

数组和可迭代对象

const list = [
    'A', 'B', 'C', 'D', 'E', 'F'
]

test('list is not has G', () => {
    // 检查是否包含 G
    expect(list).toContain('G')
})

异常

function compileAndroidCode () {
    throw new Error('you are using the wrong JDK')
}

test('compiling android goes as expected', () => {
    // 测试调用时是否触发错误
    // 可以使用必须包含在错误消息中的 字符串 或 正则
    // 或者可以使用 正则 匹配精确的错误消息
    // 触发错误函数必须在包装函数中调用
    expect(() => compileAndroidCode()).toThrow()
    expect(() => compileAndroidCode()).toThrow(Error)
    expect(() => compileAndroidCode()).toThrow('you are using the wrong JDK')
    expect(() => compileAndroidCode()).toThrow(/JDK/)
    expect(() => compileAndroidCode()).toThrow(/^you are using the wrong JDK$/)
    expect(() => compileAndroidCode()).toThrow(/^you are using the wring JDK!$/)
})

学习 Jest - 匹配值
http://localhost:8080/archives/f15d2149-ff15-4bcc-bd5a-f2c2653264ee
作者
inksha
发布于
2024年09月14日
许可协议