Je teste actuellement un contrôleur qui utilise la fonction create_zone qui dépend d'une fonction qui récupère un utilisateur pour l'associer à une zone, puis crée une entrée de participant qui est seulement une table d'association des deux EntréesPhoenix Elixir: fonctions internes fictives
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
Et je voudrais le tester en utilisant ExUnit mais le problème est que le cadre de contrôle tente de rechercher un dossier non existant dans la base de données.
** (Ecto.NoResultsError) expected at least one result but got none in query:
from u in Module.Accounts.User,
where: u.id == ^1
Comment pourrais-je le simuler ou le créer uniquement à des fins de test?
Se moque-t-il avec, par ex. https://github.com/eproxus/meck ne fonctionne pas pour vous? La fonction est publique, donc cela devrait fonctionner. – Dogbert