【问题标题】:How to move '__mocks__' folder in Jest to /test?如何将 Jest 中的“__mocks__”文件夹移动到 /test?
【发布时间】:2018-12-20 12:57:52
【问题描述】:

我已经开始在 Jest 中使用模拟来测试我的 NodeJS 应用程序并且它们运行良好,但是将 __mocks__ 文件夹移动到 /test 文件夹会更有意义,因此与测试相关的所有内容都在那里而不是混合文件在/src

以某种方式可能吗?我在 Jest 文档中的任何地方都找不到它。

【问题讨论】:

    标签: javascript node.js jestjs


    【解决方案1】:

    在我的 package.json 我有一些开玩笑的配置

    "jest": {
        "preset": "jest-preset-angular",
        "transform": {
          "^.+\\.js$": "babel-jest",
          "^.+\\.(ts|html)$": "<rootDir>/node_modules/jest-preset-angular/preprocessor.js"
        },
        "transformIgnorePatterns": [
          "node_modules/babel-runtime"
        ],
        "setupTestFrameworkScriptFile": "<rootDir>/src/__tests__/setupJest.ts",
        "moduleNameMapper": {
          "mockData": "<rootDir>/src/__tests__/data",
          "mockService": "<rootDir>/src/__tests__/services"
        },
        "testResultsProcessor": "jest-junit",
        "testMatch": [
          "**/?(*.)(spec).ts?(x)"
        ]
      },
      "jest-junit": {
        "suiteName": "jest tests",
        "output": "./reports/tests/TESTS-junit.xml",
        "classNameTemplate": "{classname}-{title}",
        "titleTemplate": "{classname}-{title}",
        "usePathForSuiteName": "true"
      }
    

    “moduleNameMapper”部分是您需要的,我在 devDependencies 之后添加了这些部分。您也可以在其他地方创建配置文件。

    https://jestjs.io/docs/en/configuration

    编辑:

    你必须修改这些路径:

    "mockData": "<rootDir>/src/__tests__/data",
    "mockService": "<rootDir>/src/__tests__/services"
    

    因此,如果您想在 src 文件夹之外进行 Mock,您可以将我的 conf 替换为:

    "mockData": "<rootDir>/__tests__/data",
    "mockService": "<rootDir>/__tests__/services"
    

    【讨论】:

    • 您能否详细说明一下让 Jest 查找 iinto /test/__mocks__ 而不是与文件相同的文件夹的样子?
    【解决方案2】:

    jest.mock('../src/service', () =&gt; require('./__mocks__/request'));

    这对我有用

    【讨论】:

      猜你喜欢
      • 2017-04-19
      • 2023-02-12
      • 2014-02-13
      • 1970-01-01
      • 2023-03-18
      • 2020-11-06
      • 2016-01-04
      • 1970-01-01
      • 2018-08-29
      相关资源
      最近更新 更多