2016-09-19 2 views
0

Ich habe einen ziemlich einfachen Code in der Phoenix-Controller. Es macht einige Sachen und gibt Inhalt abhängig vom Format zurück:Wie kann ich das Format im Phoenix.ConnTest angeben?

def delete(conn, _params) do 
    # some stuff here 

    if get_format(conn) == "json" do 
    conn |> put_status(200) |> json(%{}) 
    else 
    conn |> redirect(to: "/") 
    end 
end 

Es funktioniert richtig, aber ich habe ein Problem mit dem Testen. Ich kann die HTML-Rückgabe nicht testen. Wie kann ich es tun? dispatch/5 hat nichts mit Format zu tun.

Antwort

0

Das Format wird über accept Header für den Anschluss definiert, nicht für get oder was auch immer. Für JSON & HTML-Formate sollte es application/json bzw. html/text sein.

Sie können diese conn in Ihren Tests verwenden:

conn = build_conn 
    |> Plug.Conn.put_req_header("accept", "text/html") 
+0

Wenn man sagt „Test“ Leser sind in der Regel erwarten 'assert' und/oder' doctest' oder jede andere _test_, anstatt einfache Zuordnung, die funktioniert immer. – mudasobwa

Verwandte Themen