Elix中的Exq(或等效)和集成测试

时间:2016-05-18 15:53:49

标签: elixir phoenix-framework

我很乐意在Elixir / Phoenix中编写集成测试一段时间,但我最近添加了Exq来处理后台任务。我只是想知道其他Exq(或等效的)如何在Integration测试中处理对排队任务的调用。我真的不想在测试期间将这些任务排队。

1 个答案:

答案 0 :(得分:2)

有一个great article about such things。基本上,如果您有不想在测试期间执行的调用,请传递使其成为参数的模块。

def my_func(arg1, queue \\ Exq) do
  queue.somoething(arg1)
end

这样在你的代码中你通常可以像my_func("argument")之前那样调用它,但是在你的测试代码中你可以像这样传递一个模拟:

defmodule ExqMock do
  def something(arg1) do
    :return_some_static_value
  end
end

test "my_func works" do
  assert my_func("something", ExqMock) == :return_some_static_value
end