2017-02-06 6 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

問題は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"}にする必要がありますに渡されPARAM。これは、ページがlocalhostで訪問されたときに端末にリストされたパラメータから直接取得されました。

tipRepo.allを使用した場合のリストなので、List.firstのパイプで構造体にアクセスできます。これがなければ、tip.contentは文字列ではなく、引数エラーがあります。

関連する問題