Elixir 使用具有多个关联药剂的夹具测试控制器

Elixir 使用具有多个关联药剂的夹具测试控制器,elixir,phoenix-framework,elixir-mix,Elixir,Phoenix Framework,Elixir Mix,我目前正在努力使我的测试顺利运行,我正在努力使设置正确 有: 属于“用户”和“项目”的“工作项” 我不知道如何创建一个可以与具有正确关系的设置[:work\u item]一起使用的夹具 @create_attrs %{ comment: "some comment", date: ~D[2010-04-17], duration_in_minutes: 42, hourly_rate_in_cents: 42, project_id:

我目前正在努力使我的测试顺利运行,我正在努力使设置正确

有: 属于“用户”和“项目”的“工作项”

我不知道如何创建一个可以与具有正确关系的
设置[:work\u item]
一起使用的夹具

@create_attrs %{
    comment: "some comment",
    date: ~D[2010-04-17],
    duration_in_minutes: 42,
    hourly_rate_in_cents: 42,
    project_id: , #<- THIS ONE
    user_id: #<- &this one}

  def fixture(:work_item) do
      {:ok, work_item} = Tracking.create_work_item(@create_attrs)
    work_item
  end

  def fixture_project(:project) do
    valid_project_attrs = %{name: "Some project"}
    {:ok, project} = Clients.create_project(valid_project_attrs)
    project
  end

# Removed code for readability

defp create_work_item(_) do
    work_item = fixture(:work_item)
    %{work_item: work_item}
  end

  defp create_project(_) do
    project = fixture_project(:project)
    %{project: project}
  end

  defp create_user(_) do
    user = fixture_user(:user)
    %{user: user}
  end
@create\u attrs%{
评论:“一些评论”,
日期:~D[2010-04-17],
持续时间(分钟):42,
小时费率单位:42,

project_id:,#我要做的是创建相关的装置,然后将
@create_attrs
与指向相关装置的指针的属性合并

def fixture(:work_item) do
  project = fixture_project(:project)
  user = fixture_user(:user)
  
  {:ok, work_item} = @create_attrs
  |> Map.merge(%{project_id: project.id, user_id: user.id})
  |> Tracking.create_work_item()

  work_item
end

谢谢!我可以发誓我确实试过了,但晚上我一定是弄错了。再次谢谢你:)