Феникс: Как проверить действия контроллера с консоли? - PullRequest
0 голосов
/ 21 октября 2018

Я создал новое действие контроллера и хотел бы проверить его с консоли, чтобы убедиться, что он работает.

Как выполнить действие после запуска iex -S mix phx.server в терминале?Мне кажется, что для этого мне нужно создать структуру conn, а также структуру user (поскольку я использую Guardian).

Мой код контроллера выглядит следующим образом:

defmodule HelloWeb.AssetController do
  use HelloWeb, :controller
  use Guardian.Phoenix.Controller

  action_fallback HelloWeb.FallbackController

  def new_action(conn, %{"id" => id}, user, _claims) do
    # Stuff I want to test
  end

  # Other actions omitted

end

Как мне проверить new_action с IEx?

1 Ответ

0 голосов
/ 22 октября 2018

Вы можете использовать помощников по тестированию Phoenix для достижения чего-то похожего на то, что было сделано в тестах ExUnit в iex:

iex(22)> conn = Phoenix.ConnTest.build_conn() |>
...(22)> Phoenix.Controller.put_view(HelloWeb.AssetView)
%Plug.Conn{...}

# This assumes you have at least one user created in the dev database
iex(23)> [user | _] = HelloWeb.Schemas.User |> HelloWeb.Repo.all

iex(23)> HelloWeb.AssetController.new_action(conn, %{"id" => some_id}, user, [])
# You can inspect this conn to see if what's rendered is OK
%Plug.Conn{...}
...