What this book covers
Chapter 1, Taking Your First Steps with TDD,, has the objective of understanding and setting up test-driven development. We will analyze the concept through the problems it solves, the advantages it brings, the logic behind its implementation, and how it is relevant to the success of an Angular project.
Chapter 2, Using Jasmine and Karma to Test Angular Applications, has the goal of getting familiar with Jasmine and Karma and writing your first unit tests. You will learn more about the configurations to implement Jasmine and Karma in an Angular project.
Chapter 3, Writing Effective Unit Tests for Angular Components, Services, and Directives, looks at refactoring tests written for Angular components and writing tests for Angular services and directives used in the business logic of our project by respecting the TDD principles. The tests will be progressively refactored to highlight the gradual character of TDD.
Chapter 4, Mocking and Stubbing Dependencies in Angular Tests, focuses on the creation of mocks, which is an unavoidable aspect when testing Angular services and directives. At the same time, we will take the opportunity to complete and refactor the previous tests for our services and directives.
Chapter 5, Testing Angular Pipes, Forms, and Reactive Programming, explores how to test the pipes, reactive forms, and RxJS operators of an Angular project based on the principles of test-driven development.
Chapter 6, Exploring End-to-End Testing with Protractor, Cypress, and Playwright, looks at end-to-end testing – an approach to evaluate the functioning of a product in an end-to-end process. It is therefore wise to refer to it when you want to be sure of the quality of the application that is built. The objective is to understand it and learn more about the benefits of implementing it in an Angular project.
Chapter 7, Understanding Cypress and its Role in End-to-End Tests for Web Applications, looks at how the best tool for end-to-end testing in Angular is Cypress. We will discover together how to install it, configure it, and use it to perform our various component-oriented end-to-end tests.
Chapter 8, Writing Effective End-to-End Component Tests with Cypress, deals in more depth with the writing of end-to-end tests with Cypress – always taking a TDD approach because we will improve and refactor previous tests related to components while respecting best practices with Cypress.
Chapter 9, Understanding Continuous Integration and Continuous Deployment (CI/CD), discusses the topics of continuous integration and continuous development. The objective is to see how to set up a pipeline that will take care of verifying that software has been compiled and that all tests pass through automated jobs before being deployed on our remote server using GitLab CI/CD.
Chapter 10, Best Practices and Patterns for Angular TDD, focuses on best practices when implementing test-driven development in an Angular project and on the patterns that exist. The objective is to explore ways to converge toward clean code that’s easy to maintain and less prone to bugs.
Chapter 11, Refactoring and Improving Angular Code through TDD, focuses on leveraging test-driven development (TDD) techniques to refactor and improve existing Angular code. By writing tests before making changes, you can ensure code quality and maintainability and confidently enhance functionality. TDD enables iterative cycles of writing tests, refactoring, and improving code based on test feedback, leading to more robust and efficient Angular applications.