4 ms·
Testing with the database has to be one of the things I love the most about Ecto. No need to mock anything, no need to have special branching logic for test ver
by akoutmos 6y ago
Testing with the database has to be one of the things I love the most about Ecto. No need to mock anything, no need to have special branching logic for test versus prod. Just use the database like you normally do. It gives you a degree of confidence that is on another level. Check out https://hexdocs.pm/ecto_sql/Ecto.Adapters.SQL.Sandbox.html https://hexdocs.pm/ecto_sql/Ecto.Adapters.SQL.Sandbox.html for more info!
- striking 6y agoTesting with the database isn't particularly efficient. If you have enough tests, it becomes worth it to mock whatever would touch the database just so the tests pass in a reasonable amount of time.
- napsterbr 6y ago> Testing with the database isn't particularly efficient. Anecdata, but my experience with Ecto sandbox + thousands of tests says otherwise. Mocking would be faster? Probably. But IMO not worth the effort, given it's already fast enough. To be fair, I have worked with Elixir codebases that generated humongous amount of data per-test, only to test a fraction of this data. This kind of test was slow, but it would be much more efficient to generate only the data you actually need.
- wtetzner 6y ago> But IMO not worth the effort, given it's already fast enough. Not only that, but if you're testing with the database, you get to test your queries. That seems worth it being a bit slower.