太原网站制作_太原网站建设_太原做网站_秘密武器开发者中心
历史搜索

一文彻底搞懂前端 Jest 单元测试框架

游客2025-02-20 00:30:37
目录文章目录
  1. 前言
  2. 什么是 Jest
  3. 测试意味着什么
  4. 我怎么知道要测试什么
  5. 测试块,断言和匹配器
  6. CLI 和配置
  7. 模拟
  8. 执行环境
  9. 生成报告
  10. jest-cli
  11. jest-config
  12. jest-haste-map
  13. jest-runner
  14. jest-environment-node
  15. jest-circus
  16. jest-runtime
  17. 总结

一文彻底搞懂前端 Jest 单元测试框架 1

当上面复写全局方法和保存好 state 之后,会进入到真正执行 describe 的回调函数的逻辑里面,在 packages/jest-circus/src/run.ts 的 run 方法里面,这里使用 getState 方法把 describe 代码块取出来,然后使用 _runTestsForDescribeBlock 执行这个函数,然后进入到 _runTest 方法,然后使用 _callCircusHook 执行前后的钩子函数,使用 _callCircusTest 执行。

const run = async (): Promise<Circus.RunResult> => {
  const { rootDescribeBlock } = getState();
  await dispatch({ name: "run_start" });
  await _runTestsForDescribeBlock(rootDescribeBlock);
  await dispatch({ name: "run_finish" });
  return makeRunResult(getState().rootDescribeBlock, getState().unhandledErrors);
};

const _runTest = async (test, parentSkipped) => {
  // beforeEach
  // test 函数块,testContext 作用域
  await _callCircusTest(test, testContext);
  // afterEach
};

这是钩子函数实现的核心位置,也是 Jest 功能的核心要素。

总结

最后附上 Jest 核心引擎的代码实现给有需要的同学,欢迎关注和交流:jest-tutorial

原文链接:点击这里

标签:JavaScript

本文是由用户"游客"发布,所有内容的版权归原作者所有。没有经过书面许可,任何单位或个人不得以任何形式复制、转载、引用本网站的内容。否则将追究法律责任。

相关专题