Testing LiveView

Learn how to test LiveView effectively so you can deploy your production code with peace of mind.

Completely updated for Phoenix 1.7 and LiveView 0.19

LiveView is an amazing tool for building interactive applications. It has changed my approach to building rich UIs completely.

But testing LiveView apps requires us to learn how to use a new set of tools. And as with all new tools, we need to learn how to wield them well.

LiveView tests use a proxy process to act as the browser. That has benefits like running tests extremely fast and not having to run JavaScript for our tests. 🥳

But it also makes it easy to write specious tests — tests that seem correct but actually fail to test large portions of our LiveView code. Those tests mislead us into thinking our app is covered, but production is completely broken! 😱

That's why I won't only teach you the mechanics of writing LiveView tests (the how). I'll also teach you how not to write LiveView tests and the why of writing tests in specific ways.

When you're done, you'll have gained a new confidence in your testing abilities — the kind of confidence that makes you feel comfortable deploying on Fridays at 5pm.

A course that makes a real impact on your professional life

This course includes all the lessons I've learned while testing LiveView apps in the wild.

Each lesson is crafted from my experience testing LiveView applications and refined by my ten years of experience practicing test-driven development.

Once I teach you how to think about writing LiveView tests, you'll be able to apply the same logic to other testing challenges you face in the real world.

You'll learn to write fast, robust, and easy-to-maintain LiveView tests.

A practical course (and one you'll actually finish)

As a software developer, I know how difficult it is to keep up with all the latest developments with limited time.

But soooo many programming courses don't give you a good return on your time investment.

You sit through hundreds of hours of course material that you soon forget and never apply at work. Or worse, the course is so long you never finish it! 🤦

That's why I made Testing LiveView utterly practical.

I've taken a lot of time to distill each lesson into its essence, making it as short as possible while retaining its maximum value.

You can watch every lesson while drinking your morning coffee (or tea, no judgment). Or you can sit and watch it all in less than 3 hours! (That's less than it takes to watch The Return of the King!)

The Course Outline

We'll cover everything you need to know. From fundamentals to mastery.

  • Testing Rendering

    Learn the basics of setting up a LiveView test, rendering the LiveView, and making an assertion.

  • Scoping Assertions

    Let's get more precise about what we expect from LiveView's UI.

  • Testing Interactions

    Test interactivity from the perspective of the user. We'll learn to target elements, click them, and expect responses users can see.

  • Debugging LiveView Tests

    Tests can sometimes fail in mysterious ways. Learn how to inspect our LiveView tests so we can get unstuck.

  • Testing Forms

    Learn how to test (and how not to test) the bread and butter of the web: forms.

  • Testing Form Changes

    LiveView's forms are interactive. Learn how to test dynamic form changes.

  • Testing Function Components

    Phoenix is all in on components. Learn what to test (and what not to test) when it comes to function components.

A directory page from one of the Testing LiveView lessons Terminal showing test error
  • Testing LiveComponents

    Learn how to test LiveComponents, including which parts to test directly and which to test through the parent LiveView.

  • Testing Live Navigation

    LiveView has different ways of navigating across pages. Let's learn how to test that navigation (whether it's from LiveView to LiveView or LiveView to non-LiveView).

  • Testing Live Patch

    Learn to test live patches. I'll share my unique approach (not even included in LiveView's docs) on how to test that same code with less coupling!

  • Testing JS Hooks

    Learn to test JS hooks, and more importantly, learn the limitations of our tests when it comes to JavaScript!

  • Testing Upload Previews

    LiveView comes with wonderful uploads previews out of the box! Learn how to use the helpers needed to ensure the previews are working correctly!

  • Testing Uploads (Direct to Server)

    Learn to test LiveView uploads when we're uploading them directly to our servers.

  • Testing Uploads (Direct to Cloud)

    And learn to test uploads when we're uploading them to the cloud!

Todos lesson from Testing LiveView course Terminal showing test error

Watch it once. Reference it forever.

Of course, we don't always retain what we learn perfectly. Sometimes we need to look back at it to reinforce the learning.

That is why this course is a golden reference for testing LiveView!

Keep coming back to the lessons (and helpful summaries) as much as you need!


Individual License

  • All videos

  • Access to the source code with detailed commits

  • Comment on any lesson along with other Elixirists

  • Detailed notes for all videos to quickly reference anything without having to scrub through the video

  • Suggest topics for future videos

Team Log In

  • Get unlimited access for your team with a single shared login (such as dev@yourcompany.com)

  • Everything from the individual license

  • Share that login with your team guilt-free!

Going into this I thought $100 is a bit much, but now I can see how much work went into this making it all simple and easy to understand.

Totally worth it.

You've struck a great balance between showing how to write tests and application without getting sidetracked with other app details. You've upgraded my skills. Thanks again!

— Krister Viirsaar

This was the biggest instructive course I've learned in my elixir journey. Thank you so much for all your efforts

— Shahryar Tavakkoli

Hot damn! This was a thorough, amazing and thoughtfully organized course! Amazing work. Much respect.

— Benjamin Shepard

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.

— Ian MacDonald

"But what if I don't learn how to test LiveView?"

That's a fair question.

I truly believe this course will teach you how to test LiveView effectively.

But, hey, I've been wrong before. 🤷

That's why I offer my Learn to test guarantee!

Learn to test guarantee

If you don't learn how to test LiveView by the time you finish the course, I will give you a full refund.

If you don't learn, I don't earn.

Simple, but fair.

So, what do you have to lose? Get the course now!

Other (in)frequently asked questions

Can’t find the answer you’re looking for?

Send me an email

Who is this course for?
Developers who want to learn to test LiveView effectively, without creating tests that are brittle, slow, and hard to maintain.
What are the videos like?
Tons of live coding. Each video should feel a little like you're pairing with me.
Do I need to know how to use LiveView?
Yes. I assume you have knowledge of LiveView in the course. You don't need to be an expert, but it helps if you've seen it before. If you've never used LiveView, I recommend The Pragmatic Studio's LiveView Course .
What's your refund policy?
I offer my Learn to Test Guarantee. If you don't learn how to test LiveView by the time you're done with the course, I'll give you a refund. If you don't learn, I don't earn.
What if I live in a different country?
If the course is too expensive becuase you live in a different country, I'm happy to give you a discount. Just send me an email with the country where you live, along with a suggested reasonable price for your country, and I'll send you a discount code.
German Velasco

About Me

German Velasco

I'm a software developer who's been practicing test-driven development for a decade.

You might recognize me from my one of my short video tips I share weekly , my Testing LiveView ElixirConf talk , my TDD Phoenix book , or one of my blog posts .

For the past six 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.