elixir - 使用具有多个 belongs_to 关系长生不老药的夹具测试控制器
问题描述
我目前正试图让我的测试顺利运行,并且我正在努力让设置正确。
有:属于“用户”和“项目”的“work_item”
我不知道如何创建一个我可以使用的setup [:work_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_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
推荐阅读
- c# - 时间:2019-01-01 标签:c#automapper deep nested objects to flat object list
- mongodb - 从 mongo 集合中检索对象中的数据
- c# - 如何在 C# 中将消息格式从 MQHRF2 更改为字符串格式
- sql-server - 如何使用 sql server 在 sp 中显示带撇号的名称
- haskell - 在 Haskell 中命名没有重复名称的树(带子)结构的最佳方法
- javascript - 使用 Google Maps API,如何在当前缩放级别上用所有可见标记填充 html 表格
- mysql - MySql Server 触发异常处理
- c++ - 更喜欢 std::swap 到容器的 swap()?
- linux - 将 ASP.NET Core 2.0 webApp 部署到 Linux 服务器
- postgresql - 我无法从 Postgres 数据库中获取使用 jooq 3.9.1 的完整表列表