In my ElixirConf talk, I showed two testing packages I wrote, one I didn’t, and one I promised to extract from my code. I’ve finished that last, so here are those packages:
flow_assertions: Assertions tailored for use in pipelines. Common assertions extracted for easy reuse. Uses the
ExUnitmechanisms to get good failure messages.
ecto_flow_assertions: Common Ecto schema and changeset assertions, written to be easily used in pipelines.
ecto_test_data_builder: Code that uses Ecto needs to be tested. Such tests need the database to be populated. It pays to write a test data builder for that purpose. This package makes writing that builder easier. Contains an example of using the package to write a test data builder for an animal reservation system.
I also showed @boydm’s phoenix_integration, which I think is useful for more than just integration testing. I wrote up my basis for that claim in Using phoenix_integration for unit tests of templates and rendering