Testing JavaScript with Kent C. Dodds
14h 11m 26s
English
Paid
May 18, 2023
This course will apply the four-layer testing method to a React application, but this foundational strategy can be applied across any JavaScript framework: Angular, Vue, legacy Backbone apps, even frameworks and libraries we haven’t met yet.
Watch Online Testing JavaScript with Kent C. Dodds
Join premium to watch
Go to premium
# | Title | Duration |
---|---|---|
1 | Intro to Fundamentals of Testing in JavaScript | 00:33 |
2 | Throw an Error with a Simple Test in JavaScript | 01:42 |
3 | Abstract Test Assertions into a JavaScript Assertion Library | 01:36 |
4 | Encapsulate and Isolate Tests by building a JavaScript Testing Framework | 02:28 |
5 | Support Async Tests with JavaScripts Promises through async await | 01:06 |
6 | Provide Testing Helper Functions as Globals in JavaScript | 00:55 |
7 | Verify Custom JavaScript Tests with Jest | 00:38 |
8 | Intro to JavaScript Mocking Fundamentals | 02:41 |
9 | Override Object Properties to Mock with Monkey-patching in JavaScript | 02:05 |
10 | Ensure Functions are Called Correctly with JavaScript Mocks | 03:21 |
11 | Restore the Original Implementation of a Mocked JavaScript Function with jest.spyOn | 02:13 |
12 | Mock a JavaScript module in a test | 03:39 |
13 | Make a shared JavaScript mock module | 01:58 |
14 | Intro to Static Analysis Testing JavaScript Applications | 01:00 |
15 | Lint JavaScript by Configuring and Running ESLint | 04:41 |
16 | Use the ESLint Extension for VSCode | 01:18 |
17 | Use pre-built ESLint Configuration using extends | 02:01 |
18 | Run ESLint with npm Scripts | 02:19 |
19 | Format Code by Installing and Running Prettier | 02:56 |
20 | Configure Prettier | 02:13 |
21 | Use the Prettier Extension for VSCode | 01:47 |
22 | Disable Unnecessary ESLint Stylistic Rules with eslint-config-prettier | 02:26 |
23 | Validate All Files are Properly Formatted with Prettier | 03:11 |
24 | Avoid Common Errors by Installing and Configuring TypeScript | 05:30 |
25 | Make ESLint Support TypeScript Files | 05:29 |
26 | Validate Code in a pre-commit git Hook with husky | 02:47 |
27 | Auto-format All Files and Validate Relevant Files in a precommit Script with lint-staged | 04:19 |
28 | Run Multiple npm Scripts in Parallel with npm-run-all | 01:17 |
29 | Intro to Use DOM Testing Library to test any JS framework | 02:02 |
30 | Use DOM Testing Library with React | 02:02 |
31 | Use DOM Testing Library with Preact | 02:14 |
32 | Use DOM Testing Library with jQuery | 00:40 |
33 | Use DOM Testing Library with Dojo | 01:26 |
34 | Use DOM Testing Library with HyperApp | 01:33 |
35 | Use DOM Testing Library with AngularJS | 01:03 |
36 | Use DOM Testing Library with Angular | 01:29 |
37 | Use DOM Testing Library with VueJS | 00:57 |
38 | Use DOM Testing Library with Mithril | 01:09 |
39 | Use DOM Testing Library with from-html | 01:08 |
40 | Use DOM Testing Library with Svelte | 01:39 |
41 | Intro to Configure Jest for Testing JavaScript Applications | 02:24 |
42 | Install and Run Jest | 02:48 |
43 | Compile Modules with Babel in Jest Tests | 02:54 |
44 | Configure Jest’s Test Environment for Testing Node or Browser Code | 02:40 |
45 | Support Importing CSS files with Jest’s moduleNameMapper | 03:42 |
46 | Support using Webpack CSS Modules with Jest | 03:39 |
47 | Generate a Serializable Value with Jest Snapshots | 08:37 |
48 | Test an Emotion Styled UI with Custom Jest Snapshot Serializers | 02:22 |
49 | Support Custom Module Resolution with Jest moduleDirectories | 02:29 |
50 | Configure Jest to Run Setup for All Tests with Jest setupFilesAfterEnv | 02:54 |
51 | Support a Test Utilities File with Jest moduleDirectories | 10:58 |
52 | Use Jest Watch Mode to Speed Up Development | 07:15 |
53 | Step through Code in Jest using the Node.js Debugger and Chrome DevTools | 04:15 |
54 | Configure Jest to Report Code Coverage on Project Files | 04:41 |
55 | Analyze Jest Code Coverage Reports | 04:36 |
56 | Set a Code Coverage Threshold in Jest to Maintain Code Coverage Levels | 04:27 |
57 | Report Jest Test Coverage to Codecov through TravisCI | 01:42 |
58 | Run Jest Watch Mode by Default Locally with is-ci-cli | 02:10 |
59 | Run Tests with a Different Configuration using Jest’s --config Flag and testMatch Option | 06:34 |
60 | Support Running Multiple Configurations with Jest’s Projects Feature | 04:19 |
61 | Run ESLint with Jest using jest-runner-eslint | 04:38 |
62 | Test Specific Projects in Jest Watch Mode with jest-watch-select-projects | 02:25 |
63 | Filter which Tests are Run with Typeahead Support in Jest Watch Mode | 02:24 |
64 | Run Only Relevant Jest Tests on Git Commit to Avoid Breakages | 04:10 |
65 | What's changed in Test React Components with Jest and React Testing Library | 05:12 |
66 | Intro to Test React Components with Jest and React Testing Library | 01:43 |
67 | Render a React Component for Testing | 02:29 |
68 | Use Jest DOM for Improved Assertions | 03:08 |
69 | Use DOM Testing Library to Write More Maintainable React Tests | 04:19 |
70 | Use React Testing Library to Render and Test React Components | 01:32 |
71 | Debug the DOM State During Tests using React Testing Library’s debug Function | 01:11 |
72 | Test React Component Event Handlers with fireEvent from React Testing Library | 03:09 |
73 | Improve Test Confidence with the User Event Module | 01:30 |
74 | Test Prop Updates with React Testing Library | 01:05 |
75 | Assert That Something is NOT Rendered with React Testing Library | 02:01 |
76 | Test Accessibility of Rendered React Components with jest-axe | 03:18 |
77 | Test componentDidCatch Handler Error Boundaries with React Testing Library | 06:18 |
78 | Hide console.error Logs when Testing Error Boundaries with jest.spyOn | 02:56 |
79 | Ensure Error Boundaries Can Successfully Recover from Errors | 03:58 |
80 | Mock react-transition-group in React Component Tests with jest.mock | 04:56 |
81 | Use React Testing Library’s Wrapper Option to Simplify using rerender | 01:11 |
82 | Mock HTTP Requests with jest.mock in React Component Tests | 06:44 |
83 | Mock HTTP Requests with MSW | 06:45 |
84 | Test Drive the Development of a React Form with React Testing Library | 03:11 |
85 | Test Drive the Submission of a React Form with React Testing Library | 01:38 |
86 | Test Drive the API Call of a React Form with React Testing Library | 06:50 |
87 | Test Drive Mocking react-router’s Redirect Component on a Form Submission | 05:57 |
88 | Test Drive Assertions with Dates in React | 03:46 |
89 | Use Generated Data in Tests with tests-data-bot to Improve Test Maintainability | 03:25 |
90 | Test Drive Error State with React Testing Library | 05:23 |
91 | Write a Custom Render Function to Share Code between Tests and Simplify Tests | 02:56 |
92 | Test React Components that Use the react-router Router Provider with createMemoryHistory | 03:59 |
93 | Initialize the `history` Object with a Bad Entry to Test the react-router no-match Route | 01:14 |
94 | Create a Custom render Function to Simplify Tests of react-router Components | 05:16 |
95 | Test a Redux Connected React Component | 03:01 |
96 | Test a Redux Connected React Component with Initialized State | 01:36 |
97 | Create a Custom Render Function to Simplify Tests of Redux Components | 04:02 |
98 | Test a Custom React Hook with React’s Act Utility and a Test Component | 03:17 |
99 | Write a Setup Function to Reduce Duplication of Testing Custom React Hooks | 03:27 |
100 | Test a Custom React Hook with renderHook from React Hooks Testing Library | 01:28 |
101 | Test Updates to Your Custom React Hook with rerender from React Hooks Testing Library | 01:00 |
102 | Test React Portals with within from React Testing Library | 04:17 |
103 | Test Unmounting a React Component with React Testing Library | 04:39 |
104 | Write React Application Integration Tests with React Testing Library | 07:40 |
105 | Improve Reliability of Integration Tests using find* Queries from React Testing Library | 02:03 |
106 | Improve Reliability of Integration Tests Using the User Event Module | 01:51 |
107 | What's changed in Install, Configure, and Script Cypress for JavaScript Web Applications | 02:01 |
108 | Intro to Install, Configure, and Script Cypress for JavaScript Web Applications | 01:40 |
109 | Install and Run Cypress | 03:20 |
110 | Write the First Cypress Test | 04:58 |
111 | Configure Cypress in cypress.json | 02:43 |
112 | Installing Cypress Testing Library | 03:03 |
113 | Script Cypress for Local Development and Continuous Integration | 05:08 |
114 | Debug a Test with Cypress | 04:23 |
115 | Test User Registration with Cypress | 04:43 |
116 | Cypress Driven Development | 02:20 |
117 | Simulate HTTP Errors in Cypress Tests | 03:17 |
118 | Test User Login with Cypress | 01:28 |
119 | Create a User with cy.request from Cypress | 02:20 |
120 | Keep Tests Isolated and Focused with Custom Cypress Commands | 02:09 |
121 | Use Custom Cypress Command for Reusable Assertions | 01:38 |
122 | Run Tests as an Authenticated User with Cypress | 01:21 |
123 | Use cy.request from Cypress to Authenticate as a New User | 01:46 |
124 | Use a Custom Cypress Command to Login as a User | 00:40 |
125 | Combine Custom Cypress Commands into a Single Custom Command | 01:38 |
126 | Install React DevTools with Cypress | 03:09 |
127 | Intro to Test Node.js Backends | 04:24 |
128 | Test Pure Functions Overview | 01:29 |
129 | Write Unit Tests for a Simple Pure Function | 02:47 |
130 | Improve Error Messages by Generating Test Titles | 04:47 |
131 | Use jest-in-case to Reduce Duplication and Improve Test Titles | 04:07 |
132 | Create a Casify Function to Generate Cases for jest-in-case | 04:14 |
133 | Test Node Middleware Overview | 01:57 |
134 | Write a Unit Test for Handling an UnauthorizedError | 06:20 |
135 | Write a Unit Test for Handling headersSent in an Error Middleware | 02:04 |
136 | Write a Unit Test for Status 500 Error Middleware Fallback | 02:21 |
137 | Improve Test Maintainability using the Test Object Factory Pattern | 02:58 |
138 | Use a Test Object Factory utils/generate | 03:40 |
139 | Test Node Controllers Overview | 02:52 |
140 | Write a Unit Test for a Controller by Mocking the Database | 06:27 |
141 | Simplify Assertions on Error Messages with toMatchInlineSnapshot | 05:36 |
142 | Unit Test Business Logic of a Controller’s Middleware | 05:29 |
143 | Test Controller 404 Edge Case where Resource is Not Found | 03:10 |
144 | Test Controller Unauthorized Case | 03:39 |
145 | Test getListItems for Getting Multiple Mock Objects | 05:58 |
146 | Test the Happy Path of a Creation Flow | 06:09 |
147 | Testing an Error Case for createListItem | 03:35 |
148 | Testing the Happy Path for updateListItem | 04:50 |
149 | Testing Resource Deletion | 02:28 |
150 | Test Authentication API Routes Overview | 04:15 |
151 | Start a Node Server and Fire a Request to an HTTP API Endpoint | 04:13 |
152 | Make Assertions on HTTP API Responses for Registration | 01:37 |
153 | Test the Login Endpoint for a Node Server | 01:58 |
154 | Test the User’s Resource Endpoint | 01:58 |
155 | Create a Pre-configured axios Client for the baseURL | 01:48 |
156 | Improve Error Messages with an axios Interceptor | 06:56 |
157 | Ensure a Unique Server Port | 05:03 |
158 | Use Snapshots to Assert on Server Error Responses | 03:01 |
159 | Interact Directly with the Database | 01:39 |
160 | Test all the Edge Cases | 03:39 |
161 | Test CRUD API Routes Overview | 01:19 |
162 | Write an Integration Test for a Resource Create Endpoint | 03:50 |
163 | Write an Integration Test for a Resource Read Endpoint | 01:43 |
164 | Integration Test a Resource Update Endpoint | 01:42 |
165 | Integration Test a Resource Delete Endpoint | 04:01 |
166 | Snapshot the Error Message with Dynamic Data | 01:54 |
167 | Practical testing with Wes Bos and Scott Tolinski | 22:04 |
168 | a11y with Marcy Sutton | 34:23 |
169 | Static Types with Jessica Kerr | 28:42 |
170 | Testing Practices with J.B. Rainsberger | 33:27 |
171 | Visual regression testing with Angie Jones | 26:46 |
172 | Snapshots and Reason with Jared Forsyth | 35:02 |
173 | Testing culture with Justin Searls | 46:15 |
174 | Ministry of testing with Rosie Sherry | 27:42 |
175 | Craftmanship with Kent Beck | 32:56 |
176 | Testing Levels with Mattias Johansson | 38:32 |
Similar courses to Testing JavaScript with Kent C. Dodds
Zero to Full Stack Heropapareact.com
Duration 101 hours 29 minutes 59 seconds
Course
ES6 for everyonewesbos
Duration 7 hours 36 minutes
Course
Youtube cloneNomad Coders
Duration 15 hours 41 minutes 20 seconds
Course
70+ JavaScript Challenges: Data Structures & AlgorithmsBrad Traversy
Duration 12 hours 29 minutes 29 seconds
Course
Build Fullstack Trello clone: WebSocket, Socket IOudemy
Duration 8 hours 49 minutes 48 seconds
Course
Make a Google search engine clone: JavaScript PHP and MySQLudemy
Duration 5 hours 47 minutes 11 seconds
Course
100 Days Of Code: The Complete Web Development Bootcamp 2022Academind Pro
Duration 78 hours 51 minutes 55 seconds
Course
Learn JavaScript Closures (PRO)codesmith.io
Duration 5 hours 15 minutes 31 seconds
Course
JavaScript & LeetCode | The Ultimate Interview Bootcampudemy
Duration 4 hours 49 minutes 58 seconds
Course