lundi 25 septembre 2017

Phoenix Elixir: mock internal functions

I'm currently testing controller that uses the function create_zone that depends on a function that retrieves a user to associates said user to a zone and then creates a participant entry that is only an association table of both entries.

  def create_zone(attrs \\ %{}, user_id) do
    user = Accounts.get_user!(user_id)

    with{:ok, %Zone{} = zone} <- %Zone{}
    |> Zone.changeset(attrs,user)
    |> Repo.insert()
    do
    create_participant(zone,user)
   end
  end

And I would like to test it using ExUnit but the problem is that the testing framework tries to search a non existent record in the database.

** (Ecto.NoResultsError) expected at least one result but got none in query:
   from u in Module.Accounts.User,
   where: u.id == ^1

How could I mock or create it just for testing purposes?

Aucun commentaire:

Enregistrer un commentaire