Painless JavaScript Unit Testing
- 
Familiar Approach: Built on top of the Jasmine test framework, using familiar expect(value).toBe(other) assertions 
- 
Mock by Default: Automatically mocks CommonJS modules returned by require(), making most existing code testable 
- 
Short Feedback Loop: DOM APIs are mocked and tests run in parallel via a small node.js command line utility 
Check out the Getting Started tutorial. It's pretty simple!
<generated_api_start />
- jest.addMatchers(matchers)
- jest.autoMockOff()
- jest.autoMockOn()
- jest.clearAllTimers()
- jest.currentTestPath()
- jest.dontMock(moduleName)
- jest.genMockFromModule(moduleName)
- jest.genMockFunction()
- jest.genMockFn()
- jest.mock(moduleName)
- jest.runAllTicks()
- jest.runAllTimers()
- jest.runOnlyPendingTimers()
- jest.setMock(moduleName, moduleExports)
- mockFn.mock.calls
- mockFn.mock.instances
- mockFn.mockClear()
- mockFn.mockImplementation(fn)
- mockFn.mockImpl(fn)
- mockFn.mockReturnThis()
- mockFn.mockReturnValue(value)
- mockFn.mockReturnValueOnce(value)
- config.bail[boolean]
- config.cacheDirectory[string]
- config.collectCoverage[boolean]
- config.collectCoverageOnlyFrom[object]
- config.globals[object]
- config.moduleFileExtensions[array]
- config.modulePathIgnorePatterns[array]
- config.moduleNameMapper[object<string, string>]
- config.preprocessCachingDisabled[boolean]
- config.rootDir[string]
- config.scriptPreprocessor[string]
- config.preprocessorIgnorePatterns[array]
- config.setupEnvScriptFile[string]
- config.setupTestFrameworkScriptFile[string]
- config.testDirectoryName[string]
- config.testFileExtensions[array]
- config.testPathDirs[array]
- config.testPathIgnorePatterns[array]
- config.testPathPattern[string]
- config.unmockedModulePathPatterns[array]
- config.verbose[boolean]
- afterEach(fn)
- beforeEach(fn)
- describe(name, fn)
- expect(value)
- it(name, fn)
- it.only(name, fn)executes only this test. Useful when investigating a failure
- jest
- pit(name, fn)helper for promises
- require(module)
- require.requireActual(module)
- xdescribe(name, fn)
- xit(name, fn)
- .notinverse the next comparison
- .toThrow(?message)
- .toBe(value)comparison using- ===
- .toEqual(value)deep comparison. Use- jasmine.any(type)to be softer
- .toBeFalsy()
- .toBeTruthy()
- .toBeNull()
- .toBeUndefined()
- .toBeDefined()
- .toMatch(regexp)
- .toContain(string)
- .toBeCloseTo(number, delta)
- .toBeGreaterThan(number)
- .toBeLessThan(number)
- .toBeCalled()
- .toBeCalledWith(arg, um, ents)
- .lastCalledWith(arg, um, ents)
<generated_api_end />