Elixir / Phoenix / Guardian - 在conn中分配current_user并不适用于测试

时间:2018-04-24 12:43:18

标签: elixir phoenix-framework guardian

如果有这样的控制器

def index(%{assigns: %{current_user: %User{} = current_user}}} = conn, params) do
    ## User exists
end

def index(conn, params) do
    ## No user exists
end

如果我运行此测试,我希望它会调用第一个#index操作,但它会调用第二个操作,没有用户,并且conn分配是%{current_user: nil}

test "GET /posts", %{conn: conn} do
    user = insert(:user)
    conn = assign(conn, :current_user, user)
    get(conn, post_path(conn, :index))
end

为什么没有正确分配current_user?为什么它会消失?

1 个答案:

答案 0 :(得分:-1)

我不确定但是试试这个

def index (conn,params)
 current_user = conn.assigns.current_user
## User exists
end

试试这个