如何在测试中发出请求之前在会话会话中设置值

时间:2015-11-18 23:27:35

标签: session testing elixir phoenix-framework

我的Phoenix / Plug应用程序中的操作具有不同的行为,具体取决于会话的状态。我希望测试这种行为,但我不确定如何在发出请求之前设置会话。

以下是我希望能够做到的一个例子:

test "GET index when not signed", %{conn: conn} do
  conn = get conn, item_path(conn, :index)
  assert html_response(conn, 302)
end

test "GET index when signed in", %{conn: conn} do
  conn = conn |> put_session(:current_user, 1)
  conn = get conn, item_path(conn, :index)
  assert html_response(conn, 200)
end

请注意尝试在第二次测试中设置会话。

这不起作用,我收到如下错误消息:

** (ArgumentError) session not fetched, call fetch_session/2

但我无法使用fetch_session/1,因为此处尚未配置会话插件。

我可以点击设置我需要的会话状态的动作,但后来我在生产代码中添加了测试钩子,这似乎不太理想。

建议的方法是什么?

0 个答案:

没有答案