मैंने एक नई नियंत्रक कार्रवाई बनाई है और मैं यह सुनिश्चित करने के लिए कंसोल से इसका परीक्षण करना चाहता हूं कि यह काम करता है।

टर्मिनल में iex -S mix phx.server चलाने के बाद मैं क्रिया कैसे निष्पादित कर सकता हूं? मुझे ऐसा लगता है कि ऐसा करने के लिए, मुझे एक conn संरचना और साथ ही एक user संरचना बनाने की आवश्यकता है (क्योंकि मैं गार्जियन का उपयोग कर रहा हूं)।

मेरा नियंत्रक कोड इस तरह दिखता है:

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 का परीक्षण कैसे कर सकता हूं?

1
Erik Eng 21 अक्टूबर 2018, 17:55

1 उत्तर

सबसे बढ़िया उत्तर

iex में ExUnit परीक्षणों में जो किया गया है, उसे प्राप्त करने के लिए आप फीनिक्स परीक्षण सहायकों का उपयोग कर सकते हैं:

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{...}
1
Paweł Obrok 22 अक्टूबर 2018, 10:29