Testing
ExUnit ships with Elixir — async tests, doctests, setup callbacks, and rich assertions out of the box. ExMachina creates test factories. Mox enables concurrent, explicit mocks based on behaviours. Bypass stubs external HTTP calls. Wallaby drives browser tests. StreamData provides property-based testing. The testing story in Elixir is first-class from day one.
ExUnit
built-inNeed a test framework?
Built-in test framework with async test support, doctests, setup callbacks, and rich assertions
ExMachina
libraryNeed test data factories?
Test factory library for creating Ecto structs and maps with associations
Mox
libraryNeed mocking for tests?
Library for defining concurrent, explicit mocks based on behaviours
Mimic
libraryNeed mocking without behaviours?
Flexible mocking library combining the best of Mox and Meck with stubs, expectations, and call tracking
Bypass
libraryNeed to mock external API calls?
Stub external HTTP requests by creating a custom plug server on a local port
Wallaby
libraryNeed end-to-end browser testing?
Browser-based integration testing with concurrent sessions and automatic screenshots
StreamData
libraryNeed to test with random inputs?
Property-based testing and data generation for finding edge cases automatically