Problem
I have unit tests and integration tests
Both call the same set of functions.
All the integration tests passed. 🎉
All the unit tests failed. 😢
For every unit test , I got the same error :
|
|
Searching for module not available pointed to solutions that were not
applicable. Most suggested including httpoison in mix.exs - which was
already taken care of.
I'm grateful for the people on the elixir forum for being helpful and responsive. (You can read the details on elixir forum. Link at the end.)
Root Cause
I am using Mock library in the unit tests. It turns out it changes what is
available to the underlying code (as it should).
I was using HTTPoison.post in the unit tests, while one of the lower level
function was calling HTTPoison.request
Solution
The fix was as simple as changing HTTPoison.post to HTTPoison.request in the
with_mock HTTPoison block.
Reference : See the discussion on Elixir Forum