Book Image

Svelte with Test-Driven Development

By : Daniel Irvine
Book Image

Svelte with Test-Driven Development

By: Daniel Irvine

Overview of this book

Svelte is a popular front-end framework used for its focus on performance and user-friendliness, and test-driven development (TDD) is a powerful approach that helps in creating automated tests before writing code. By combining them, you can create efficient, maintainable code for modern applications. Svelte with Test-Driven Development will help you learn effective automated testing practices to build and maintain Svelte applications. In the first part of the book, you’ll find a guided walkthrough on building a SvelteKit application using the TDD workflow. You’ll uncover the main concepts for writing effective unit test cases and practical advice for developing solid, maintainable test suites that can speed up application development while remaining effective as the application evolves. In the next part of the book, you’ll focus on refactoring and advanced test techniques, such as using component mocks and writing BDD-style tests with the Cucumber.js framework. In the final part of the book, you’ll explore how to test complex application and framework features, including authentication, Svelte stores, and service workers. By the end of this book, you’ll be well-equipped to build test-driven Svelte applications by employing theoretical and practical knowledge.
Table of Contents (22 chapters)
1
Part 1: Learning the TDD Cycle
8
Part 2: Refactoring Tests and Application Code
16
Part 3: Testing SvelteKit Features

What this book covers

Chapter 1, Setting up for Testing, covers the SvelteKit package and configuring your development environment for effective TDD work with both the Vitest and Playwright test runners.

Chapter 2, Introducing the Red-Green-Refactor Workflow, shows how the basic TDD process works, and discusses why it’s useful. It introduces the Vitest test runner for writing unit tests.

Chapter 3, Loading Data into a Route, demonstrates how to load data into a Svelte page component using TDD. It introduces the Playwright test runner for writing end-to-end tests.

Chapter 4, Saving Form Data, shows how to implement a basic HTML form along with its submit action.

Chapter 5, Validating Form Data, adds form validation rules to the form built in Chapter 4.

Chapter 6, Editing Form Data, shows how TDD can be used to evolve a system design, by modifying the form to work in edit mode.

Chapter 7, Tidying up Test Suites, switches focus to look at techniques for better testing, starting with a look at how test suites can be kept neat and tidy.

Chapter 8, Creating Matchers to Simplify Tests, explains an advanced technique for managing the complexity of test suites: creating and using expectation matcher functions.

Chapter 9, Extracting Logic Out of the Framework, discusses how you can make your application design more testable by moving logic out of framework-controlled modules.

Chapter 10, Test-Driving API Endpoints, looks at how you can use TDD to implement API calls.

Chapter 11, Replacing Behavior with a Side-By-Side Implementation, shows how TDD is useful even when faced with complex refactoring exercises.

Chapter 12, Using Component Mocks to Clarify Tests, introduces the most complex piece of frontend automated testing: component mocking.

Chapter 13, Adding Cucumber Tests, introduces the Cucumber test framework and shows how it can be applied to a SvelteKit project.

Chapter 14, Testing Authentication, shows an approach to writing both unit and end-to-end tests for authentication libraries.

Chapter 15, Test-Driving Svelte Stores, provides a brief look at how Svelte stores can be effectively tested.

Chapter 16, Test-Driving Service Workers, shows how to write automated tests for service workers, as supported by the SvelteKit framework.