haben wir eine Vielzahl von Methoden ausprobiert und alle von ihnen ergaben verschiedene Arten von Fehlern, an die ich mich zum Glück nicht mehr erinnern kann. Wir konnten bypass_through
und Freunde bis zur letzten Zeit verwenden, als wir eine Sitzung für echt brauchen.Wie erstellt man eine Sitzung in Phoenix Tests?
Das ist, was ich in der Lage war, die zusammen auf Plug
Tests stützen zu setzen:
def conn_with_session do
build_conn
|> get("/")
|> recycle
|> Plug.Session.call(Plug.Session.init(store: Plug.ProcessStore, key: "_app_key"))
|> fetch_session
end
wo Plug.ProcessStore
ist https://github.com/elixir-lang/plug/blob/master/test/test_helper.exs#L6
von hier Kopie kleistert Gibt es eine bequemere/einfache Methode, das zu tun?
Ich denke, dies ist die kürzeste Variante ist, da [bereits beantworten] ist (http : //stackoverflow.com/a/31983168/3102718). Sie können wahrscheinlich "recycle" weglassen, wenn Sie "conn" statt "build_conn" verwenden. Es ist auch eine gute Lösung zu 'assign (conn,: current_user, user)' zu vermeiden Session-Check (Sie wahrscheinlich wissen, aber nur für den Fall) –