Testing LiveView
Learn to test LiveView effectively. Gain trust in your code. Ship confidently.
Learn to test LiveView effectively. Gain trust in your code. Ship confidently.
Phoenix LiveView brings a new set of testing tools and requires a new way of thinking about our tests.
Don't write tests that:
Instead, master LiveView's new testing tools, learn the thought process behind what, when, and how to test LiveView, and rediscover the joy of having tests that are
We'll cover everything you need to know. From fundamentals to mastery. And I'll keep publishing videos for testing-related changes until LiveView hits 1.0!
Throughout the course we'll test (and build) a twitter clone, a real application full of trade-offs and edge cases.
The basics of setting up a LiveView test and making sure the initial page renders the correct information.
Let's get more precise about what we expect from LiveView's UI.
A parent LiveView renders a list of LiveComponents. What should we test in the LiveView, and how should we test it?
How to test LiveComponents, what to test in them, and how to target elements that aren't simple text.
Test interactivity from the perspective of the user. Targeting elements, clicking them, and expecting responses users can see.
When to test and when not to test live patch. And what are the alternatives?
How to test navigation from LiveViews to other LiveViews and non-LiveViews.
Testing form submissions, changes, validations, and redirections.
Testing event-driven updates to our Twitter clone.
Test users interacting with a page to show new posts.
A deep dive into considering how to test interactions between LiveView, stateful LiveComponents, and the rest of our application.
Seeing our own UI react to changes is not enough. We want to harness the power of Phoenix so that all users can see those changes too.
As developers we spend a large portion of our time reading code. Let's see how to write our tests in a way that our colleagues (and our future selves) will easily understand.
A quick dive into using the wonderful open_browser/1 helper to debug LiveView tests
Testing that we can scroll infinitely with JavaScript hooks.
When the built-in LiveView tooling isn't enough, we drop into a lower-level of abstraction and use Floki to improve our assertions.
Whether you end up choosing to upload images to your server or to the cloud, we cover how to be confident that our application is uploading, saving, and displaying those uploads correctly.
All videos
Access to the source code with detailed commits
Comment on any lesson along with other Elixirists
Detailed notes for all videos, so you can quickly reference anything without having to scrub through the video
Suggest topics for future videos
Message me about a difficult LiveView testing scenario you're currently experiencing, and I'll do my best to help, or even make a lesson of it!
I can't thank you enough for the course! It's allowed me to get comfortable with Elixir and Phoenix LiveView quickly as my career shifted from data science (C++, Python, R) to web-app testing & development.
I'm a software developer who's been practicing test-driven development for almost a decade.
You might recognize me from my Testing LiveView ElixirConf talk, my TDD Phoenix book, or one of my blog posts.
For the past five years, I've been helping clients deal with slow test suites, intermittent failures, difficult test cases, and more.
Testing is my passion. I love thinking about it, iterating on practices, and figuring out how to write tests that are valuable, stable, and easy to maintain.