【问题标题】:Testing Phoenix controllers that are in nested folders测试嵌套文件夹中的 Phoenix 控制器
【发布时间】:2018-07-27 15:02:17
【问题描述】:

我有一个 elixir 伞形应用程序,其中包含一个 phoenix 应用程序和一个 elixir 应用程序。该应用程序按预期工作,但我在测试其中一个控制器时遇到问题。

当我运行测试时,文件中的测试不会运行。看起来他们在测试过程中以某种方式被跳过了。

控制器文件看起来像...

defmodule AppName.File.Path.NameOfController do
  def index(conn, params) do
    render(conn, "index.html")
  end
end

测试文件也相当简单,看起来像......

defmodule AppName.File.Path.NameOfControllerTest do
  test "GET /"the_url/I/want", %{conn: conn} do
    conn = get conn, some_path(conn, :index)
    assert html_response(conn, 200) =~ "Some html"
  end
end

我项目中的所有测试都在这个文件上运行,但例外。我认为这可能与文件路径有关,但我看不出这会影响测试的任何原因。我也可以在运行应用程序时转到端点。

任何帮助将不胜感激。提前致谢。

【问题讨论】:

  • 是您的测试来自的文件,以“.exs”扩展名命名(而不是“.ex”)。这在过去一直困扰着我。
  • 嘿@ScottThompson,是的,该文件具有.exs 扩展名。感谢您的评论,这绝对是一直在检查的东西。

标签: testing elixir phoenix-framework


【解决方案1】:

conn = get conn, some_path(conn, :index) 应该是conn = get conn, name_of_path(conn, :index)

为了获得正确的路径助手,Phoenix 删除了尾随的 Controller 并将名称转换为蛇形大小写并附加 _path

所以NameOf 变成了name_of

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多