欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > 能源 > Jest 测试ES类

Jest 测试ES类

2025/9/15 3:08:19 来源:https://blog.csdn.net/weixin_45134711/article/details/144266079  浏览:    关键词:Jest 测试ES类

我们介绍了使用Jest 测试函数,测试异步函数,Mock 函数,那么怎么测试class呢?

引入

首先,我们创建一个class

// 这里,我们写一个类
class util {af(a, b) {console.log(a, b)}bf(a, b) {console.log(a, b)}cf(a, b) {console.log(a, b)}
}export default util

然后,我们按照以前的经验进行测试

要注意的是,我们这个测试要在所有用例前,实例化util

那么就会是

import Util from "./main"let util = null;beforeAll(() => {util = new Util()
})it("测试类", () => {expect(util.af("akun", "akun02")).toEqual("akunakun02")
})

正如你看到的, 我们这样也是可以进行测试的,但是,如果这个class里边的方法都异常的复杂,那么你的测试效率是很低的,所以我们接下载要使用Jest 的mock class

Mock

我们创建一个媒介函数,用来调用实例化和使用我们class的方法

// 导入我们自己写的
import Util from "./main"const demoFunc = (a, b) => {// 实例化let util = new Util();util.af('akun','akun02')util.bf('akun','akun02')
}export default demoFunc

然后,我们进行mock,和测试

// 模拟类  他一看是类,就自动转为mock fn
jest.mock("./main")import Util from "./main"import demoFunc from "./MockClass";it("测试", () => {demoFunc();// 检查 Util 是否被实例化expect(Util).toHaveBeenCalledTimes(1);// 查看 mock 类信息console.log(Util.mock)  // 查看 mock 类结构console.log(Util.mock.instances[0])  // 查看第一次实例化的对象expect(Util.mock.instances[0].af).toHaveBeenCalled()expect(Util.mock.instances[0].bf).toHaveBeenCalled()
})

在这里,我们使用Jest mock的时候,不论你把这句话放在哪里,他始终会被提升到第一行执行

我们的测试函数也很简单,调用我们媒介函数,然后测试我们的mock的Util是否被执行

在这里要注意,toHaveBeenCalledTimes等API仅使用于Jest Mock的函数,自己写的不算

那这里为什么可以使用呢?

因为,我们的mock会把你的util进行处理,他一看你的文件里边是一个class,那么他就会把所有的变为Jest.fn(),模拟函数

所以你才可以使用API

所以Jest Mock Class 就是这样了,如果你对他的mock不满意,可以创建_Mock_文件夹,创建util.js文件,自己写Mock 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词