在 Phoenix/Elixir 中测试渲染

Test rendering in Phoenix/Elixir

我的 phoenix 应用程序中有一个包含 render_footer/1 的视图模块。我将如何使用 EXUnit 来测试此功能?

defmodule Lorem.LayoutView do
  use Lorem.Web, :view

  def render_footer(conn) do
    render __MODULE__, "footer.html", conn: conn
  end
end

defmodule Lorem.LayoutViewTest do
  use Lorem.ConnCase, async: true

  test "render_footer" do
    flunk "Not implemented!"
  end
end

您可以拨打Phoenix.View.render_to_string。另请记住,您的模板都已预编译为 render/2 调用,因此我只需调用

render LayoutView, "footer.html", assigns

而不是 render_footer 函数,除非你需要做一堆作业准备。对于测试,您可以这样做:

import Phoenix.View
test "render_footer" do
  render_to_string(Lorem.LayoutView, "footer.html", ..) =~ "copyright"
end