Introduction to TDD in Node and Typescript (and Jest)
What you'll learn
- Introduction to TDD using Node and Typescript
- Jest testing framework
- Practice TDD with some exercises (katas)
- Inside-out approach a.k.a. classicist a.k.a. Chicago school TDD
- Outside-in approach a.k.a. mockist a.k.a. London school TDD
- Test doubles, mocks, spies, stubs, fakes and dummies
- Familiar with Node and Typescript
- Basic understanding of Testing in general
This course is an introduction to Test Driven Development. TDD is a practice where we start writing tests defining the problem we have to solve and later writing the code implementation. By doing this, we focus on what we have to build and what are the expected outcomes of the software. We also have a safe space to try new designs, approaches and solutions to the same problem, as the boundaries and scope are well defined by the tests.
In this course we will learn what is TDD, how to use it in a nodejs and typescript environment using jest as testing framework. During the way we will see the basic rules of it and how we can take advantage of being disciplined. To do so, will do some exercises to practice what we learned in a safe space with specific learning objectives. We will have some problems presented and we will start first writing the tests, one at a time and leveraging the design of our code from them using the red-green-refactor loop. Later we will learn how to use mocks and stubs and we will write the tests with our design already in mind and build our software with confidence according to our design decisions.
Kudos to @Panos for the constructive feedback that helped to make this course better.
Who this course is for:
- Developers with certain experience writing code
- Developers with certain experience writing tests
Spent quite a few years at University getting a:
- Computer Science Degree
- Master in Informatics Engineering
- European Master in Software Engineering
Before that, during, and after also spend some time doing:
~15 years writing code
~10 years professional experience
~ 5 years XP practitioner
Managed to collaborate from early stage startups to world wide companies, as well as international consultancy companies offering services to multiple customers. Also, in the meanwhile, did several pet projects.