多测师是一家拥有先进的教学理念,强大的师资团队,业内好评甚多的接口自动化测试培训机构!

17727591462

联系电话

您现在所在位置:接口自动化测试培训 > 新闻资讯

前端自动化测试框架Jest中的Mock

更新时间:2022-07-06 09:24:03 作者:多测师 浏览:73

  函数的 Mock

  在我们的项目中,一个模块的方法内通常会去调用另外一个模块的方法。在测试时,我们可能并不需要关心方法内部的执行过程和结果,只想知道它是否被正确调用即可,此时,就需要用到Jest的使用Mock函数了。

前端自动化测试框架Jest中的Mock

  Mock 函数提供的以下三种特性,在我们写测试代码时十分有用:

  ·捕获函数调用情况

  · 设置函数返回值

  · 改变函数的内部实现

  测试函数是否被正常调用

  首先定义一个函数,用来执行传入的回调,然后导出:

  // index.js

  export const runCallback = callback => {

  callback();

  };

  然后我们需要这样测试:

  // index.test.js

  import { runCallback } from "./index";

  test("测试 runCallback", () => {

  const func = jest.fn(); // 生成 mock 函数,捕获函数的调用

  runCallback(func); // 调用 mock 函数

  expect(func).toBeCalled(); // toBeCalled 匹配器用来检查函数是否被调用过

  });

  测试函数调用次数是否正确

  首先定义一个函数,用来执行传入的回调,然后导出:

  // index.js

  export const runCallback = callback => {

  callback();

  };

  然后我们需要这样测试:

  // index.test.js

  import { runCallback } from "./index";

  test("测试调用次数", () => {

  const func = jest.fn(); // 生成 mock 函数,捕获函数的调用

  runCallback(func); // 第一次调用 mock 函数

  runCallback(func); // 第二次调用 mock 函数

  runCallback(func); // 第三次调用 mock 函数

  expect(func.mock.calls.length).toBe(3); // 检查函数是否被调用了三次

  });

  测试函数是否返回 undefined

  首先定义一个函数,用来执行传入的回调,然后导出:

  // index.js

  export const runCallback = callback => {

  callback();

  };

  然后我们需要这样测试:

  // index.test.js

  import { runCallback } from "./index";

  test("测试返回值", () => {

  const func = jest.fn(); // 生成 mock 函数,捕获函数的调用

  expect(runCallback(func)).toBeUndefined(); // 检查函数是否返回 undefined

  });

  以上内容为大家介绍了前端自动化测试框架Jest中的Mock,本文由多测师亲自撰写,希望对大家有所帮助。了解更多自动化测试相关知识:https://www.aichudan.com/xwzx/

联系电话

17727591462

返回顶部