Test-Driven Development for JavaScript LiveLessons

Test-Driven Development for JavaScript LiveLessons

English | MP4 | AVC 1280×720 | AAC 44KHz 2ch | 101 Lessons (17h 49m) | 3.63 GB

Learn How to Use Test-Driven Development Techniques to Create High-Quality JavaScript Applications

Test-Driven Development for JavaScript LiveLessons brings you step-by-step knowledge to create high-quality JavaScript applications. The course teaches you how to apply test-driven technologies to create reliable and verifiable JavaScript solutions that are maintainable and adhere to best practices.

JavaScript has become an indispensable language in modern-day computing. Writing JavaScript is relatively straightforward but writing high-quality JavaScript and testing it thoroughly is much harder. Test-Driven Development for JavaScript LiveLessons uses Jest for defining and running JavaScript and TypeScript tests. It also covers how to use Jest to test many popular types of JavaScript solutions, including Node.js applications on the server and React and Angular solutions at the client.

Taught by experienced trainer and author, Andy Olsen, this course is your complete guide to mastering writing high-quality JavaScript. The course has hands-on demos throughout the lessons for better understanding of the topic areas.

Learn How To:

  • Set up a testing environment for JavaScript and TypeScript
  • Organize tests into suites
  • Write effective tests for the user interface and for server-side code
  • Apply mocking techniques effectively
  • Test React applications
  • Test Angular applications
Table of Contents

1 Test-Driven Development for JavaScript Introduction

Lesson 01 Getting Started with JavaScript Testing
2 Learning objectives
3 Overview of testing in JavaScript
4 Getting started with Jest
5 Writing and running a test
6 Organizing tests into suites
7 Using ECMAScript modules

Lesson 02 Using Jest Matchers Effectively
8 Learning objectives
9 Overview of Jest matchers
10 Testing for equality
11 Testing for range
12 Testing for null, undefined, or NaN
13 Testing for truth or falsehood
14 Testing for object properties
15 Testing for collections
16 Testing for errors
17 Defining and using a simple custom matcher
18 Defining and using a parameterized custom matcher

Lesson 03 Writing Effective Tests
19 Learning objectives
20 Performing common setup and teardown operations
21 Defining parameterized tests
22 Testing for errors
23 Testing TypeScript code
24 Gathering test coverage information

Lesson 04 Testing Asynchronous Operations
25 Learning objectives
26 Testing callback functions
27 Testing errors from callback functions
28 Specifying a timeout for tests
29 Understanding promises
30 Testing promises
31 Using the async and await keywords
32 Getting started with RxJs
33 Going further with RxJs

Lesson 05 Mocking
34 Learning objectives
35 Creating and using a mock function
36 Understanding the .mock property
37 Using mock functions to mock an API
38 Mocking modules
39 Mocking promises
40 Mocking REST calls

Lesson 06 Additional Mocking Techniques
41 Learning objectives
42 Spying on functions
43 Defining a mock implementation for a spy
44 Mocking timers
45 Mocking timers – additional techniques
46 Introduction to ES6 classes
47 Defining automatic mocks for ES6 classes
48 Defining manual mocks for ES6 classes

Lesson 07 Effective Test-Driven Development (TDD)
49 Learning objectives
50 Overview of TDD
51 TDD walkthrough
52 Refactoring
53 Refactoring with inheritance
54 Additional techniques

Lesson 08 Testing the User Interface
55 Learning objectives
56 DOM essentials
57 Introduction to JSDOM
58 Accessing content using JSDOM
59 Loading an HTML file in a test
60 Testing JavaScript code that accesses HTML content
61 Testing event handlers
62 Introduction to Testing Library
63 Types of query available in Testing Library
64 A closer look at the query API in Testing Library
65 Using companion libraries with Testing Library

Lesson 09 Getting Started with Testing React Applications
66 Learning objectives
67 Getting started with React
68 Creating a simple React app
69 Creating a complete React app
70 Understanding React components
71 Testing a React app

Lesson 10 Going Further with Testing React Applications
72 Learning objectives
73 Sample React application
74 Introduction to Enzyme
75 Shallow rendering in Enzyme
76 Full DOM rendering in Enzyme
77 Static rendering in Enzyme
78 Simulating events in Enzyme
79 Testing React state in Enzyme
80 Testing React effect hooks in Enzyme
81 Using React Testing Library

Lesson 11 Getting Started with Testing Angular Applications
82 Learning objectives
83 Getting started with Angular
84 Creating an Angular application
85 Defining tests for a simple class
86 Defining comprehensive tests for a class
87 Understanding Angular components
88 Testing a component
89 Going further with component testing

Lesson 12 Going Further with Testing Angular Applications
90 Learning objectives
91 Testing a component that has state and functions
92 Component DOM testing
93 Testing a component that has child components
94 Defining a component that has inputs and outputs
95 Testing a component that has inputs and outputs
96 Testing the parent of a component that has inputs and outputs
97 Defining a service
98 Testing a service
99 Defining a pipe
100 Testing a pipe

101 Test-Driven Development for JavaScript Summary