We need to ship, but we have to ship code that works. We often ensure that our apps do what we want them to do by testing them in the browser manually. Sometimes we get other people to test things for us. In these recipes, we’ll explore how to test our code as we build it and also how to create repeatable acceptance tests—test that we can run whenever we make changes to our code—so we can see whether things still work the way they did before. And we’ll look at how we can test our assumptions.