在Phoenix中创建和使用Elixir助手模块

Ell*_*son 11 elixir phoenix-framework

我在我的虚拟博客凤凰应用程序中创建了一组验收测试.他们之间有一些重复的逻辑我想转移到帮手模块以保持干燥.

这是目录结构:

test/acceptance/post
??? create_test.exs
??? delete_test.exs
??? helpers.exs
??? index_test.exs
??? update_test.exs
Run Code Online (Sandbox Code Playgroud)

helpers.exs文件是我想坚持重复验收测试逻辑的地方.它看起来像:

defmodule Blog.Acceptance.Post.Helpers do
  def navigate_to_posts_index_page do
    # some code
  end
end
Run Code Online (Sandbox Code Playgroud)

然后在我的一个测试文件中,比方说index_test.exs,我想导入帮助程序模块以使用它的方法:

defmodule Blog.Acceptance.Post.IndexTest do 
  import Blog.Acceptance.Post.Helpers
end
Run Code Online (Sandbox Code Playgroud)

但是,我收到此错误:

**(CompileError)test/acceptance/post/index_test.exs:7:模块Blog.Acceptance.Post.Helpers未加载且无法找到

如何在我的测试文件中访问或加载帮助程序模块?

Chr*_*ord 21

要使test_helpers.exsHelpers模块可用,您需要使用Code.require_file它来加载它; 但是,在这种情况下,phoenix将您的项目配置为将.ex文件编译test/support到项目中,完全适合这样的情况.因此,如果您将模块放入其中test/support/test_helpers.ex,它将与您的项目一起编译,并且可用于所有测试文件,而无需使用Code.require_file它.