如何在 Jest 中使用 Mock Function 进行测试?

阅读时长 4 分钟读完

什么是 Mock Function?

Mock Function 是一个 Jest 中的模拟函数,可以在测试代码中替换掉实际的函数,用于测试时创造假数据,模拟函数的行为,从而使得测试变得更加简单和可预测。

使用 Mock Function 可以避免测试时依赖外部服务的影响、增加测试的可靠性,以及复杂测试的可读性和可维护性。

如何在 Jest 中创建 Mock Function?

在 Jest 中创建 Mock Function 很简单,只需要在测试代码中使用 jest.fn() 方法即可:

或者使用 jest.spyOn() 方法来创建一个已经存在的对象或者函数的 Mock Function:

如何使用 Mock Function 进行测试?

Mock Function 可以用于多种测试场景,例如模拟 API 调用、模拟异步调用、模拟 DOM 操作等。

以下是一个简单的示例,展示了如何使用 Mock Function 模拟 API 调用,以及如何断言 Mock Function 被调用过:

-- -------------------- ---- -------
-- ------
------ ----- --------- - ----- -- -- -
  ----- -------- - ----- ----------------------------------------------------
  ----- ---- - ----- ----------------
  ------ -----
--

-- -----------
------ - --------- - ---- --------

-------------- ----------- -- -- -
  --------------- ------ -- -------- ----- -- -- -
    ----- ------------- - ----------
    ------------------------------- ----- -- --- -- ------ ----- ------ -- ---
    ----- -------------------------
    -----------------------------------------
  ---
---

如何配置 Mock Function?

Mock Function 支持多种配置选项来模拟不同的情况。以下是一些常见的配置选项:

  • mockFn.mockReturnValue(value):设置函数的返回值。
  • mockFn.mockResolvedValue(value):设置异步函数的返回值。
  • mockFn.mockRejectedValue(value):设置异步函数的异常值。
  • mockFn.mockImplementation(fn):设置函数的行为,可用于模拟复杂函数的行为。

以下是一个示例,展示了如何使用 mockReturnValue() 方法设置函数的返回值,以及如何断言返回值:

-- -------------------- ---- -------
-- -------
------ ----- --- - --- -- -- - - --

-- ------------
------ - --- - ---- ---------

-------------- ----- -- -- -
  --------- ------ ------ --- -- -- -
    ----- ------- - ----------
    ---------------------------
    ----- ------ - ------ -- ---------
    -----------------------
    -----------------------------------
  ---
---

总结

Mock Function 是 Jest 中的一个非常实用的测试工具,可以帮助我们简化测试,增加测试的可靠性和可维护性。在使用 Mock Function 进行测试时,需要注意合理的配置选项,从而模拟出不同的测试场景。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/65a7c18fadd4f0e0ff0e656d

纠错
反馈