我正在尝试测试当我有查询参数时,我会根据该参数返回正确的内容。
我试过了:
test "find_tags returns tips with the correct tag type" do
post = fixture(:post)
tip = Post |> Post.find_tags("tag", "connect"}) |> Repo.all
assert String.contains? tip.content, "#connect"
end
但是我收到了错误。我不确定这是否是访问参数的正确方法,或者是否还有其他任何我缺失的内容。
答案 0 :(得分:2)
问题出在两个方面。最终的工作测试是:
test "find_tags returns tips with the correct tag type" do
post = fixture(:post)
tip = Post |> Post.find_tags(%{"tag" => "connect"}) |> Repo.all |> List.first
assert String.contains? tip.content, "#connect"
end
传入的参数需要采用%{"tag" => "connect"}
格式而不是{"tag", "connect"}
格式。这是在localhost上访问该页面时直接从终端中列出的参数中获取的。
使用tip
时,Repo.all
是一个无效的其他部分,因此可以通过List.first
中的管道访问该结构。如果没有这个,tip.content
不是字符串,并且存在参数错误。