Jest 匹配器
在软件开发中,测试是一个非常重要的环节。而在 JavaScript 开发中,Jest 是一个非常流行的测试框架。Jest 提供了丰富的功能和工具,其中的匹配器(Matchers)是其中之一。匹配器可以帮助我们编写更简洁、更高效的测试代码。本文将介绍 Jest 匹配器的使用方法和一些常用的匹配器。
什么是 Jest 匹配器?
Jest 匹配器是 Jest 提供的一组用于断言(assert)的工具。通过使用匹配器,我们可以方便地检查代码的输出结果是否符合预期。Jest 提供了多种匹配器,包括基本的相等匹配器、类型匹配器、正则匹配器等等。使用匹配器可以让我们的测试代码更加简洁和可读。
基本的相等匹配器
最常用的匹配器之一是 toEqual
,它用于检查两个值是否相等。例如:
test('两个数字相加结果为5', () => {
expect(2 + 3).toEqual(5);
});
除了 toEqual
,Jest 还提供了其他的相等匹配器,如 toBe
、toBeNull
、toBeDefined
等等。根据不同的需求,我们可以选择合适的匹配器来进行断言。
类型匹配器
除了相等匹配器,Jest 还提供了一些用于检查数据类型的匹配器。例如,我们可以使用 toBeInstanceOf
来检查一个对象是否是某个类的实例:
class Person {}
const person = new Person();
test('person 是 Person 类的实例', () => {
expect(person).toBeInstanceOf(Person);
});
正则匹配器
Jest 还提供了一些用于正则表达式匹配的匹配器。例如,我们可以使用 toMatch
来检查一个字符串是否匹配某个正则表达式:
test('字符串中包含 "hello" 单词', () => {
expect('hello world').toMatch(/hello/);
});
异常匹配器
有时候我们需要测试某个函数是否会抛出异常。Jest 提供了 toThrow
匹配器来检查函数是否会抛出异常:
function throwError() {
throw new Error('出错了');
}
test('throwError 函数会抛出异常', () => {
expect(throwError).toThrow('出错了');
});
自定义匹配器
除了 Jest 提供的内置匹配器,我们还可以自定义匹配器来满足特定的需求。自定义匹配器可以让我们更好地适应项目的特殊情况。例如,我们可以自定义一个匹配器来检查一个数组是否包含某个元素:
expect.extend({
toContainElement(received, element) {
const pass = received.includes(element);
if (pass) {
return {
message: () => `expected ${received} not to contain ${element}`,
pass: true,
};
} else {
return {
message: () => `expected ${received} to contain ${element}`,
pass: false,
};
}
},
});
test('数组中包含元素 3', () => {
expect([1, 2, 3]).toContainElement(3);
});
总结
Jest 匹配器是 Jest 测试框架中非常重要的一部分。通过使用匹配器,我们可以编写更简洁、更高效的测试代码。本文介绍了 Jest 匹配器的基本用法和一些常用的匹配器。希望本文能够帮助你更好地理解和使用 Jest 匹配器,提高测试效率。
标签:匹配,自定义,test,简化,expect,Jest,测试代码,器来 From: https://blog.51cto.com/u_15718546/7528245