germsvel
Hi there,
I’ve been working on a Test-Driven Development with Phoenix book. It teaches TDD and BDD by building a chat app from the outside-in. It’s still a work in progress, but the overall TDD process is clear, and the application that we build throughout the book is fully functional. So, I believe people can already benefit from it.
The book is freely available online at tddphoenix.com.
If you’re interested in the process of writing it, I talked some about it in episode 18 of the Thinking Elixir podcast
I hope some find it helpful.
Trending in Books
I have a sharing session about the Elixir ecosystem for Erlang developers. I feel that people are still confused about the differences be...
New
Other Trending Topics
Edit: 2026 May 15 - This post is archived.
Mob is alive!!
Main docs: mob v0.7.11 — Documentation
A bit of explanation for the slightly c...
New
Hey, I’m Jesse and I’m the main contributor behind Dexter, a full-featured, lightning-fast Elixir LSP optimized for large codebases. It s...
New
I am happy to introduce the very α version of the new programming language compiled to BEAM.
Welcome Cure.
It has literally three kille...
New
Hi there! We created Gust: A task orchestrator inspired by Airflow.
For those who have never heard about Aiflow, it’s a Python-based wor...
New
Hi everyone!
The first release candidate for the Expert language server project is now available!
We’ve published a press release detai...
New
Beam Bots (or just BB for short) is a framework for building fault-tolerant robotics applications in Elixir using familiar OTP patterns. ...
New
Categories:
Sub Categories:
Forums
Popular Tags
- #ecto
- #liveview
- #troubleshooting
- #learning-elixir
- #library
- #deployment
- #erlang
- #testing
- #genserver
- #mix
- #absinthe
- #remote-other
- #otp
- #plug
- #how-to-question
- #macros
- #postgres
- #elixirconf
- #channels
- #exunit
- #discussion
- #code-sync
- #podcasts
- #javascript
- #onsite
- #dialyzer
- #docker
- #authentication
- #umbrella
- #full-time-contract
- #podcasts-by-brainlid
- #ecto-query
- #ai
- #elixirconf-us
- #blog-post
- #elixir-ls
- #phoenix_html
- #iex
- #graphql
- #genstage
- #websockets
- #supervisor
- #advent-of-code
- #distillery
- #processes
- #api
- #forms
- #elixirconf-eu
- #metaprogramming
- #hex










Showing Posts 1 to 10- Show Best Posts
- Show All (oldest first)
- Show All (newest first)
imartinat
It seems awesome. Thanks for this great free book.
imartinat
I really like your book and the explanations. The first time I tried to use Wallaby, I had an error "
Wallaby can’t find phantomjs" . So I installed chromedriver and I setup Wallaby using chromedriver. It might be good to update your book to setup Wallaby with phantomjs or chromedriver. Thanks again for your book.
joelwallis
This is awesome! I’m learning Phoenix and I currently struggle to put TDD into practice.
I’ll definitely be reading your book. Thank you!
germsvel
Thanks! I definitely need to add a little note about that at the beginning. It’ll be there when I push the next set of changes.
idlehands
Fantastic! I will try to take a look soon and then share it out as a resource. Thank you!
Qqwy
Thank you very much for creating this!
Very nice
The one piece of feedback I would like to share after reading through it (some sections thoroughly, some sections skimmingly) is that you do not mention property-based testing. Even if only as a footnote, mentioning it might help people to discover it as one more cool tool for their testing toolbox.
mstibbard
I can’t seem to get this working at all… Even with chromedriver and phantomjs installed.
imartinat
I am on a mac, I installed Chromedriver and moved it to /usr/local/bin (or you need to add it to your PATH).
And in config.exs, I added
mstibbard
Thanks, adding that to config/test.exs & chromedriver to PATH changed the error message at least!!
germsvel
What version of Wallaby are you using?
In version 0.25 and newer, Chrome stopped being experimental, so the config changes to
If that doesn’t fix the issue, make sure you include the following in your
test/test_helper.exs:That your
config/test.exsfile hasserver: trueand thesql_sandboxflag:And then use that flag in your endpoint:
Hopefully, just one of those steps is missing. Wallaby’s setup docs are pretty good. So check them out if you still have problems.