我的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
,因为此处尚未配置会话插件。
我可以点击设置我需要的会话状态的动作,但后来我在生产代码中添加了测试钩子,这似乎不太理想。
建议的方法是什么?