私は現在、create_zone関数を使用するコントローラをテストしています。この関数は、ユーザーを取得してそのユーザーをゾーンに関連付け、次に両方の関連テーブルのみの参加者エントリを作成する関数エントリ。Phoenix Elixir:内部関数を模擬する
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
そして私はExUnitを使用してそれをテストしたいと思いますが、問題はテストフレームワークは、データベース内の実在しないレコードを検索しようとするということです。
** (Ecto.NoResultsError) expected at least one result but got none in query:
from u in Module.Accounts.User,
where: u.id == ^1
私はテスト目的のために模擬したり作成したりできますか?
https://github.com/eproxus/meckはあなたのためには機能しませんか?この関数はpublicなので、うまくいくはずです。 – Dogbert