рдХреНрдпрд╛ рдЖрдк _feature_ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдпрд╛ _bug_ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ?
рдЧрд▓рддреА рд╕реВрдЪрд┐рдд рдХрд░реЗрдВ
рд╡рд░реНрддрдорд╛рди рд╡реНрдпрд╡рд╣рд╛рд░ рдХреНрдпрд╛ рд╣реИ?
рдЬреЗрд╕реНрдЯ 16 рдкрд░: 0 рддрд░реНрдХреЛрдВ рдХреЗ рд╕рд╛рде toHaveBeenCalledWith
рдкрд░реАрдХреНрд╖рдг рдкрд╛рд╕ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдПрдХ рдЬрд╛рд╕реВрд╕ рдХреЛ 0 рддрд░реНрдХреЛрдВ рдХреЗ рд╕рд╛рде рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рдЬреЗрд╕реНрдЯ 15 рдкрд░: 0 рддрд░реНрдХреЛрдВ рдХреЗ рд╕рд╛рде toHaveBeenCalledWith
рдкрд░реАрдХреНрд╖рдг рдкрд╛рд╕ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рдПрдХ рдЬрд╛рд╕реВрд╕ рдХреЛ 0 рддрд░реНрдХреЛрдВ рдХреЗ рд╕рд╛рде рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рдпрджрд┐ рд╡рд░реНрддрдорд╛рди рд╡реНрдпрд╡рд╣рд╛рд░ рдПрдХ рдмрдЧ рд╣реИ, рддреЛ рдХреГрдкрдпрд╛ рдкреБрди: рдкреЗрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрджрдо рдкреНрд░рджрд╛рди рдХрд░реЗрдВ рдФрд░ рдпрджрд┐ рд╕рдВрднрд╡ рд╣реЛ рддреЛ рдЧрд┐рдЯрд╣рдм рдкрд░ рдПрдХ рдиреНрдпреВрдирддрдо рднрдВрдбрд╛рд░ рд╣реИ рдХрд┐ рд╣рдо npm install
рдФрд░ npm test
рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдиреНрдпреВрдирддрдо рдкрд░реАрдХреНрд╖рдг:
it('can check that a function is called without arguments', () => {
let fn = jasmine.createSpy();
fn();
expect(fn).toHaveBeenCalledWith();
});
рд░реЗрдкреЛ: https://github.com/benmccormick/jest-no-args/tree/master
рдЕрдкреЗрдХреНрд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдХреНрдпрд╛ рд╣реИ?
0 рддрд░реНрдХреЛрдВ рдХреЗ рд╕рд╛рде toHaveBeenCalledWith
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрд░реАрдХреНрд╖рдг рдХреЛ рдПрдХ рдЕрднрд┐рдХрдерди рдкрд╛рд░рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрдм рдПрдХ рдЬрд╛рд╕реВрд╕ рдХреЛ 0 рддрд░реНрдХреЛрдВ рдХреЗ рд╕рд╛рде рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рдЬреЗрд╕реНрдЯ рдХреЛ рдлрд┐рд░ рд╕реЗ --debug
рдХреЗ рд╕рд╛рде рдЪрд▓рд╛рдПрдВ рдФрд░ рдЗрд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд┐рдВрдЯ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдкреВрд░реНрдг рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдкреНрд░рджрд╛рди рдХрд░реЗрдВред
> node_modules/.bin/jest --debug
jest version = 16.0.1
test framework = jasmine2
config = {
"rootDir": "/Users/ben/Code/experiments/jest-no-args",
"name": "-Users-ben-Code-experiments-jest-no-args",
"setupFiles": [],
"testRunner": "/Users/ben/Code/experiments/jest-no-args/node_modules/jest-jasmine2/build/index.js",
"scriptPreprocessor": "/Users/ben/Code/experiments/jest-no-args/node_modules/babel-jest/build/index.js",
"usesBabelJest": true,
"automock": false,
"bail": false,
"browser": false,
"cacheDirectory": "/var/folders/wy/1r3js80s60q497r_lrjyb0bh0000gn/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/ben/Code/experiments/jest-no-args"
],
"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
}
}
FAIL __tests__/test.js
тЧП can check that a function is called without arguments
expect(spy).toHaveBeenCalledWith(expected)
Expected spy to have been called with:
[undefined]
But it was called with:
Array []
at Object.<anonymous>.it (__tests__/test.js:6:16)
at process._tickCallback (internal/process/next_tick.js:103:7)
тЬХ can check that a function is called without arguments (5ms)
Test Suites: 1 failed, 1 total
Tests: 1 failed, 1 total
Snapshots: 0 total
Time: 0.822s
Ran all test suites.
рдиреЛрдб рд╕рдВрд╕реНрдХрд░рдг: 6.7.0
рдПрдирдкреАрдПрдо рд╕рдВрд╕реНрдХрд░рдг: 3.10.7
рдареАрдХ рд╣реИ, рдереЛрдбрд╝рд╛ рдЧреЛрддрд╛ рд▓рдЧрд╛ рдЪреБрдХреЗ рд╣реИрдВред рдореИрдЪрд░ рд╕реНрд╡рдпрдВ ( /Users/ben/Code/experiments/jest/packages/jest-matchers/src/spyMatchers.js
рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд) рдХреЛ рджреВрд╕рд░рд╛ "рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд" рддрд░реНрдХ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдХреЛрдИ рддрд░реНрдХ рдкрд╛рд░рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рддреЛ рдпрд╣ рдореБрджреНрджрд╛ рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рдЧрд╣рд░рд╛ рд╣реИ (рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдмрд┐рдирд╛ рдХрд┐рд╕реА рддрд░реНрдХ рдХреЗ рдФрд░ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рдЧреБрдЬрд░рдиреЗ рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ)ред
рдореИрдВ рдЕрднреА рддрдХ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реВрдВ рдХрд┐ рдпрд╣ рддрд░реНрдХ рдХрд╣рд╛рдВ рд╕реЗ рдЧреБрдЬрд░ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдЗрд╕рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ рдФрд░ рдЕрдЧрд░ рдореИрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рддреЛ рдПрдХ рдкреАрдЖрд░ рдЦреЛрд▓реВрдВрдЧрд╛
рдЕрджреНрдпрддрди: рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдЗрд╕реЗ рдЯреНрд░реИрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдорджрдж рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдЗрд╕ рдЖрдЦрд┐рд░реА рд░рд┐рд▓реАрдЬ рдХреЗ рджреМрд░рд╛рди рдЗрди рдореИрдЪрд░реНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдлреА рдХреБрдЫ рдмрджрд▓ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдпрд╣ рдкрддрд╛ рдирд╣реАрдВ рд▓рдЧрд╛ рд╕рдХрддрд╛ рдХрд┐ рдпрд╣ рдХрд╣рд╛рдВ рдЯреВрдЯ рдЧрдпрд╛ред
рдмрд╕ рдЬрд┐рдЬреНрдЮрд╛рд╕рд╛ рд╕реЗ рдмрд╛рд╣рд░: рдЖрдк toHaveBeenCalled()
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд░рддреЗ?
'toHaveBeenCalled' рдЬрд╛рдВрдЪрддрд╛ рд╣реИ рдХрд┐ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдмрд┐рд▓реНрдХреБрд▓ рдмреБрд▓рд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдкрд░реАрдХреНрд╖рдг рд╣реИ рдЬреЛ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдХрд┐рд╕реА рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдмрд┐рдирд╛ рдХрд┐рд╕реА рддрд░реНрдХ рдХреЗ рдмреБрд▓рд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рд╡рд╛рд╕реНрддрд╡рд┐рдХ рджреБрдирд┐рдпрд╛ рдЙрдкрдпреЛрдЧ рдХрд╛ рдорд╛рдорд▓рд╛: рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рдПрдХ рд╕реВрдЪреА рдкрд░ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдпрд╛ рддреЛ рдПрдХ рдЖрдИрдбреА рд▓реЗрддрд╛ рд╣реИ (рдФрд░ рдПрдХ рдЖрдЗрдЯрдо рдкрд░ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ) рдпрд╛ рдмрд┐рдирд╛ рдЖрдИрдбреА рдХреЗ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдФрд░ рдкреВрд░реА рд╕реВрдЪреА рдкрд░ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ)
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
'toHaveBeenCalled' рдЬрд╛рдВрдЪрддрд╛ рд╣реИ рдХрд┐ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдмрд┐рд▓реНрдХреБрд▓ рдмреБрд▓рд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдкрд░реАрдХреНрд╖рдг рд╣реИ рдЬреЛ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдХрд┐рд╕реА рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдмрд┐рдирд╛ рдХрд┐рд╕реА рддрд░реНрдХ рдХреЗ рдмреБрд▓рд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рд╡рд╛рд╕реНрддрд╡рд┐рдХ рджреБрдирд┐рдпрд╛ рдЙрдкрдпреЛрдЧ рдХрд╛ рдорд╛рдорд▓рд╛: рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рдПрдХ рд╕реВрдЪреА рдкрд░ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдпрд╛ рддреЛ рдПрдХ рдЖрдИрдбреА рд▓реЗрддрд╛ рд╣реИ (рдФрд░ рдПрдХ рдЖрдЗрдЯрдо рдкрд░ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ) рдпрд╛ рдмрд┐рдирд╛ рдЖрдИрдбреА рдХреЗ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдФрд░ рдкреВрд░реА рд╕реВрдЪреА рдкрд░ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ)