J'ai de la difficulté à obtenir un exemple simple pour travailler. Je ne suis pas en utilisant Phoenix FWIW, il suffit de brancherComment fonctionne Plug.Exception?
defmodule Unauthorized do
defexception message: "not authorized", plug_status: 401
end
defmodule Foo do
use Plug.Router
plug :match
plug :dispatch
get "/" do
send_resp(conn, 200, "heyyyo")
end
get "/boom" do
raise Unauthorized
end
match _ do
send_resp(conn, 404, "not found")
end
end
Ce type est un exemple stupide, mais je suis juste essayer de voir si cela va fonctionner comme je pense qu'il est censé fonctionner.
J'espérais que la fiche traiterait l'exception soulevée dans GET /boom
et retourner un 401 état
Cependant, quand j'essaie de GET /boom
il retourne un statut 500, donc apparemment l'exception n'est pas assurée par branchez
Sweet! Merci!!!!! – luk3thomas
une question de suivi pour vous. Comment puis-je tester cela? Dans le test, je peux seulement voir qu'il soulève l'exception. Je ne suis pas en mesure d'affirmer sur 'conn.status' – luk3thomas
Vous pouvez utiliser' Plug.Test.sent_resp'. Exemple tiré des tests de Plug: https://github.com/elixir-lang/plug/blob/master/test/plug/error_handler_test.exs#L36-L67. – Dogbert