Jest 23 features major updates. Here are the top ones.
Babel and Webpack join the Jest community
Webpack saw their total test suite time reduced 6x from over 13 minutes to 2 minutes 20 seconds, after converting from Mocha to Jest 23 Beta.
Interactive Snapshot Mode
The newly incorporated Interactive snapshot mode, is added as a default watch menu option. With this new mode, testers can browse through each failing snapshot in each failing suite, and review, update or skip each failed snapshots individually.
Snapshot Property Matchers
Jest now has Snapshot property matchers through which testers can pass properties to the snapshot matcher which specify the structure of the data instead of the specific values. These property matchers are then verified before serializing the matcher type to provide consistent snapshot results across multiple test runs.
Jest 23 features a new jest-each library inspired by mocha-each and Spock Data Tables. This library defines a table of test cases, and then runs a test for each row with the specified column values. Support is provided for both array types and template literals for all flavors of describe and test.
Watch Mode Plugins
The watch mode system now allows adding of custom plugins to watch mode. These watch mode plugins can hook into Jest events and provide custom menu options in the watch mode menu.
Other changes include:
- Test descriptions and functions are a mandate. Jest 23 will fail tests that do not include both a function and a description.
- Undefined props from React snapshots are now removed.
- MapCoverage, jest.genMockFunction and jest.genMockFn are deprecated.
- Snapshot name (if provided) is now added to the snapshot failure message so it’s easier to find the snapshot that’s failing.
- Mock timestamps are replaced with invocationCallOrder since two or more mocks may often have the same timestamp, making it impossible to test the call order.
- Mock function call results are added to snapshots so that both the calls and the results of the invocation are tracked.
For the complete list of changes and updates, see the changelog.
Testing Single Page Applications (SPAs) using Vue.js developer tools
What is React.js and how does it work?
How to test node applications using Mocha framework