Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Elixir 如何在Phoenix LiveView中测试句柄_info/2?_Elixir_Phoenix Framework_Functional Testing_Phoenix Channels_Phoenix Live View - Fatal编程技术网

Elixir 如何在Phoenix LiveView中测试句柄_info/2?

Elixir 如何在Phoenix LiveView中测试句柄_info/2?,elixir,phoenix-framework,functional-testing,phoenix-channels,phoenix-live-view,Elixir,Phoenix Framework,Functional Testing,Phoenix Channels,Phoenix Live View,凤凰卫视奇才们好 是一种普遍的行为。如果您阅读文档,您可以找到: 除了提供的同步和异步通信 以及通过以下功能发送的“常规”消息: ,以及类似的,可以在内部处理 回调 因此,只要您知道流程的pid,您就可以发送其中任何一个。经过大量研究、反复试验、错误、错误(迭代),我们提出了以下测试: test "handle_info/2", %{conn: conn} do {:ok, view, disconnected_html} = live(conn, "/") assert disconn

凤凰卫视奇才们好 是一种普遍的行为。如果您阅读文档,您可以找到:

除了提供的同步和异步通信 以及通过以下功能发送的“常规”消息: ,以及类似的,可以在内部处理 回调


因此,只要您知道流程的
pid
,您就可以发送其中任何一个。

经过大量研究、反复试验、错误、错误(迭代),我们提出了以下测试:

test "handle_info/2", %{conn: conn} do
  {:ok, view, disconnected_html} = live(conn, "/")
  assert disconnected_html =~ "Count: 0"
  assert render(view) =~ "Count: 0"
  send(view.pid, %{payload: %{ val: 1 }})
  assert render(view) =~ "Count: 1"
end
感谢@daniel为我们指明了
send/2
功能的方向

以及@AlekseiMatiushkin耐心地提出上述探究性问题。“你能详细说明什么是不清楚的吗?”AlekseiMatiushkin感谢你的快速回复。尚不清楚如何设置测试文件,然后调用
handle\u event/3
函数。但是从重新读取文档来看,我们似乎没有直接调用函数,而是通过
渲染\u单击(视图,:inc)
处理\u事件/3
对到达LV进程的消息进行回调,这意味着你永远不想通过直接调用来测试它。更新了问题以反映测试
handle\u info/2
功能的挑战。感谢你为我们指明了正确的方向@Daniel