Workshop: 1 day
Testing Svelte & SvelteKit applications
Workshop description
Testing is a critical part of building any non-trivial application – without automatic test coverage, you can't really know whether things work as expected or you're breaking things as you continue building out an application. This workshop covers both guidance on what to test and how, as well as concrete techniques for writing tests that are fast, stable, and easy to maintain.
The Testing Pyramid
We'll start off with some basic theory, talking about the testing pyramid. The testing pyramid gives guidance on what kind of test to use for testing what aspect of a system as well as how much coverage is required at what level of the pyramid.
Unit tests with Vitest
Unit tests are at the lowest level of the testing pyramid so we'll start with those.
Component tests with Vitest, Testing Library and Storybook
Next, we progress to writing components tests with Vitest and testing library. We'll look into writing functional tests for Svelte components as well as explore techniques like snapshot testing and visual testing with Storybook.
End-to-end tests with Playwright
End-to-end tests sit at the top of the testing pyramid and we'll end with those. We'll look into writing tests that cover the entirety of our isomorphic SvelteKit application with Playwright.
Full-stack application testing and data
Tests require a well-known state that the test runs against so we can make assertions on the result. That can be challenging, in particular for end-to-end tests where the state might need to exist outside of the SvelteKit application. We'll look at typical challenges as well as techniques