代码之家  ›  专栏  ›  技术社区  ›  Paul Hicks

如何在测试环境之外使用笑话

  •  0
  • Paul Hicks  · 技术社区  · 3 年前

    我希望利用 jest.mock() 在非测试情况下。我想 change the functionality of an external module 。在测试代码中,我已经在使用 jost.mmock() 截取模块的一个函数,使其简单地返回 true 总是现在,我想从一个独立的web应用程序中做完全相同的事情。

    我不知道如何像在测试代码中那样在应用程序代码中获得魔术笑话对象,所以我添加了 import { jest } from "@jest/globals"; 。这使得 jost.mmock() 可用,在我的IDE中看起来不错。不幸的是,当我运行我的应用程序时,它会喷出

    throw new Error(
          ^
    Error: Do not import `@jest/globals` outside of the Jest test environment
    

    我该如何解决这个问题?我很乐意做以下任何一项:

    • 绕过检查,只需“让它发挥作用”;
    • 让我的应用程序实际上是一个测试,或者以某种方式托管一个Jest测试环境;或
    • 使用不同的工具,允许在非测试环境中进行模块伪造。
    0 回复  |  直到 2 年前
        1
  •  1
  •   Paul Hicks    3 年前

    我正在努力解决的一个解决方案是,但我并不特别满意:

    1. 更新jest.config.js(或您正在使用的任何jest-config)以定义 index.ts 作为测试文件。
    2. 将index.ts文件的重要内容包装在 describe()

    这是一个令人讨厌的变通方法,我不会接受这个答案:)