如何在 Phoenix.ConnTest 中指定格式?

How can I specify format in the Phoenix.ConnTest?

我在 phoenix 控制器中有一个非常简单的代码。它根据格式做一些事情和 returns 内容:

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

它工作正常,但我在测试它时遇到了问题。我无法测试 html return。我该怎么做? dispatch/5 与格式无关。

格式是通过 accept header 为连接定义的,而不是为 get 或其他。对于 json 和 html 格式,它应该分别是 application/jsonhtml/text

您可以在测试中使用此 conn

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