2017-02-06 3 views
3

Я пытаюсь проверить, что, когда у меня есть параметры запроса, я возвращаю правильный контент на основе этого параметра.Доступ к параметрам в тестах

Я попытался:

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 

, но я получаю сообщение об ошибке. Я не уверен, что это правильный способ доступа к параметрам, или если есть что-то еще, что мне не хватает.

ответ

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 не является строкой и есть ошибка аргумента.

Смежные вопросы