Jest: рдиреЛрдб_рдореЙрдбреНрдпреВрд▓ рдкрд░ рдирдХрд▓реА рдореЙрдбреНрдпреВрд▓ рдХреЛ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджреА рдЬрд╛рддреА рд╣реИ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 13 рдЕрдХреНрддреВре░ 2016  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: facebook/jest

рдХреНрдпрд╛ рдЖрдк _feature_ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдпрд╛ _bug_ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ?
рдЧрд▓рддреА рд╕реВрдЪрд┐рдд рдХрд░реЗрдВред

рд╡рд░реНрддрдорд╛рди рд╡реНрдпрд╡рд╣рд╛рд░ рдХреНрдпрд╛ рд╣реИ?
рдпрджрд┐ рдХрд┐рд╕реА рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдореЙрдХ рдХреЗ рд╕рд╛рде рдЖрдВрддрд░рд┐рдХ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рдорд╛рди рдирд╛рдо рд╡рд╛рд▓реЗ рдореЙрдбреНрдпреВрд▓ рдкрд░ рдирд┐рд░реНрднрд░рддрд╛ рд╣реИ, рддреЛ рд╡реИрд╢реНрд╡рд┐рдХ рдореЙрдбреНрдпреВрд▓ рдХреЗ рдмрдЬрд╛рдп рд╡реИрд╢реНрд╡рд┐рдХ рдореЙрдбреНрдпреВрд▓ рдХреЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд▓рд┐рдП рдирдХрд▓реА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рдЕрдирдореЙрдХрд┐рдВрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ (рдЬреЛ рддрдм рдЪреЗрддрд╛рд╡рдиреА рдкреНрд░рд┐рдВрдЯ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рдХреЗ рдмрд╛рд╡рдЬреВрдж рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рдПрдХ рдареЛрд╕ рдкрд░рд┐рд╡рд░реНрддрди рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдирд╛)ред

рдпрджрд┐ рд╡рд░реНрддрдорд╛рди рд╡реНрдпрд╡рд╣рд╛рд░ рдПрдХ рдмрдЧ рд╣реИ, рддреЛ рдХреГрдкрдпрд╛ рдкреБрди: рдкреЗрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрджрдо рдкреНрд░рджрд╛рди рдХрд░реЗрдВ рдФрд░ рдпрджрд┐ рд╕рдВрднрд╡ рд╣реЛ рддреЛ рдЧрд┐рдЯрд╣рдм рдкрд░ рдПрдХ рдиреНрдпреВрдирддрдо рднрдВрдбрд╛рд░ рд╣реИ рдХрд┐ рд╣рдо npm install рдФрд░ npm test ред

  1. рдХреНрд▓реЛрди https://github.com/ticky/jest-mock-bug , npm install рдирд┐рд░реНрднрд░рддрд╛
  2. npm test рдЪрд▓рд╛рдПрдБ

рд╡реИрд╢реНрд╡рд┐рдХ рдореЙрдбреНрдпреВрд▓ ( with no explicit opt-out тА║ globalPad should not be a mock function ) рдХреЛ рдЖрдпрд╛рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреА рдЙрдореНрдореАрдж рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдкрд░реАрдХреНрд╖рдг рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд▓реМрдЯрд╛рдпрд╛ рдЧрдпрд╛ рдореЙрдбреНрдпреВрд▓ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдореИрдиреБрдЕрд▓ рдореЙрдХ рд╣реИред

(рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ left-pad рдХрд╛ рдЙрдкрдпреЛрдЧ рдпрд╣рд╛рдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдПрдХ рдЫреЛрдЯрд╛ рдореЙрдбреНрдпреВрд▓ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдХреЛрдИ рд╕рдВрдХрд▓рди рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред)

рдЕрдкреЗрдХреНрд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдХреНрдпрд╛ рд╣реИ?

рдЖрдпрд╛рдд рд╡рд┐рд╡рд░рдг рдХреЛ рд╡реИрд╢реНрд╡рд┐рдХ рдореЙрдбреНрдпреВрд▓ рд╡рд╛рдкрд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ explicit-opt-out.js

рдЬреЗрд╕реНрдЯ рдХреЛ рдлрд┐рд░ рд╕реЗ --debug рд╕рд╛рде рдЪрд▓рд╛рдПрдВ рдФрд░ рдЗрд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд┐рдВрдЯ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдкреВрд░реНрдг рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдкреНрд░рджрд╛рди рдХрд░реЗрдВред

jest version = 16.0.1
test framework = jasmine2
config = {
  "rootDir": "/Users/jessica/Repositories/jest-mock-bug",
  "name": "-Users-jessica-Repositories-jest-mock-bug",
  "setupFiles": [],
  "testRunner": "/Users/jessica/Repositories/jest-mock-bug/node_modules/jest-jasmine2/build/index.js",
  "scriptPreprocessor": "/Users/jessica/Repositories/jest-mock-bug/node_modules/babel-jest/build/index.js",
  "usesBabelJest": true,
  "automock": false,
  "bail": false,
  "browser": false,
  "cacheDirectory": "/var/folders/rl/98bml8qx57n3b6xgsgyvbxtr0000gn/T/jest",
  "clearMocks": false,
  "coveragePathIgnorePatterns": [
    "/node_modules/"
  ],
  "coverageReporters": [
    "json",
    "text",
    "lcov",
    "clover"
  ],
  "globals": {},
  "haste": {
    "providesModuleNodeModules": []
  },
  "mocksPattern": "__mocks__",
  "moduleDirectories": [
    "node_modules"
  ],
  "moduleFileExtensions": [
    "js",
    "json",
    "jsx",
    "node"
  ],
  "moduleNameMapper": {},
  "modulePathIgnorePatterns": [],
  "noStackTrace": false,
  "notify": false,
  "preset": null,
  "preprocessorIgnorePatterns": [
    "/node_modules/"
  ],
  "resetModules": false,
  "testEnvironment": "jest-environment-jsdom",
  "testPathDirs": [
    "/Users/jessica/Repositories/jest-mock-bug"
  ],
  "testPathIgnorePatterns": [
    "/node_modules/"
  ],
  "testRegex": "(/__tests__/.*|\\.(test|spec))\\.jsx?$",
  "testURL": "about:blank",
  "timers": "real",
  "useStderr": false,
  "verbose": null,
  "watch": false,
  "cache": true,
  "watchman": true,
  "testcheckOptions": {
    "times": 100,
    "maxSize": 200
  }
}

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рд╣рд╛рдВ, рдиреЛрдб рдореЙрдбреНрдпреВрд▓ рдкрд░ рдореИрдиреБрдЕрд▓ рдореЙрдХ рдХреЛ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджреА рдЬрд╛рддреА рд╣реИред рдореИрдиреБрдЕрд▓ рдореЙрдХ рд╕рд┐рд╕реНрдЯрдо рдереЛрдбрд╝рд╛ рд╕реНрдХреЗрдЪреА рд╣реИред рдЕрднреА рдХреЗ рд▓рд┐рдП, рд╣рдо рдЕрдЧрд▓реА рд░рд┐рд▓реАрдЬрд╝ рдореЗрдВ рдЪреЗрддрд╛рд╡рдиреА рдХреЛ рд╣рдЯрд╛ рд░рд╣реЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП jest.unmock('left-pad') рдЖрдкрдХреЛ рдмрд╕ рдЗрддрдирд╛ рд╣реА рдЪрд╛рд╣рд┐рдПред рджреЗрдЦреЗрдВ #2022

рдПрдХ рд╡рд┐рдЪрд╛рд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдореИрдиреБрдЕрд▓ рдиреЛрдб рдореЙрдбреНрдпреВрд▓ рдореЙрдХ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рдкреНрд░рдгрд╛рд▓реА рдмрдирд╛рдиреЗ рдХрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЗрд╕рдХреА рдПрдХ рдЕрд▓рдЧ рдкреНрд░рд╕реНрддрд╛рд╡ рдореЗрдВ рдЪрд░реНрдЪрд╛ рдХреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдП, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдмрдВрдж рдХрд░ рджреВрдВрдЧрд╛ред

рд╕рднреА 3 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдорд╛рдорд▓рд╛ рдореЗрд░реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд╕рдорд╛рди рд╣реИ

рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдореЗрд░реЗ рдкрд╛рд╕ <rootDir>/__mocks__/left-pad.js ред рд╕рднреА рдкрд░реАрдХреНрд╖рдг рдЬреЛ left-pad рдЖрдпрд╛рдд рдХрд░рддреЗ рд╣реИрдВ, рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдирдХрд▓реА left-pad рдЖрдпрд╛рдд рдХрд░реЗрдВрдЧреЗ, рднрд▓реЗ рд╣реА рдореИрдВрдиреЗ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ jest.mock('left-pad') рдХреЙрд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдерд╛

рдореЗрд░рд╛ рд╡рд░реНрддрдорд╛рди рдХрд╛рдордХрд╛рдЬ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдирдХрд▓реА рд╣реИ рдФрд░ рдлрд┐рд░ рдЙрдиреНрд╣реЗрдВ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЕрдирдореЙрдХ рдХрд░реЗрдВред рдпрд╣ рдмрджрд╕реВрд░рдд рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ

jest.mock('left-pad');
jest.unmock('left-pad');

рдЖрд╣, рдзрдиреНрдпрд╡рд╛рдж! рдпрд╣ рдореЗрд░реА рддреБрд▓рдирд╛ рдореЗрдВ рдПрдХ рдХреНрд▓реАрдирд░ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЕрднреА рднреА рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЖрджрд░реНрд╢ рдирд╣реАрдВ рд╣реИ!

рд╣рд╛рдВ, рдиреЛрдб рдореЙрдбреНрдпреВрд▓ рдкрд░ рдореИрдиреБрдЕрд▓ рдореЙрдХ рдХреЛ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджреА рдЬрд╛рддреА рд╣реИред рдореИрдиреБрдЕрд▓ рдореЙрдХ рд╕рд┐рд╕реНрдЯрдо рдереЛрдбрд╝рд╛ рд╕реНрдХреЗрдЪреА рд╣реИред рдЕрднреА рдХреЗ рд▓рд┐рдП, рд╣рдо рдЕрдЧрд▓реА рд░рд┐рд▓реАрдЬрд╝ рдореЗрдВ рдЪреЗрддрд╛рд╡рдиреА рдХреЛ рд╣рдЯрд╛ рд░рд╣реЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП jest.unmock('left-pad') рдЖрдкрдХреЛ рдмрд╕ рдЗрддрдирд╛ рд╣реА рдЪрд╛рд╣рд┐рдПред рджреЗрдЦреЗрдВ #2022

рдПрдХ рд╡рд┐рдЪрд╛рд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдореИрдиреБрдЕрд▓ рдиреЛрдб рдореЙрдбреНрдпреВрд▓ рдореЙрдХ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рдкреНрд░рдгрд╛рд▓реА рдмрдирд╛рдиреЗ рдХрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЗрд╕рдХреА рдПрдХ рдЕрд▓рдЧ рдкреНрд░рд╕реНрддрд╛рд╡ рдореЗрдВ рдЪрд░реНрдЪрд╛ рдХреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдП, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдмрдВрдж рдХрд░ рджреВрдВрдЧрд╛ред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

nsand picture nsand  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

samzhang111 picture samzhang111  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

gustavjf picture gustavjf  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

mmcgahan picture mmcgahan  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

Antho2407 picture Antho2407  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ