我有一个 phoenix 频道,它会在handle_in之后在handle_info上推送结果,而不是立即回复(请不要问为什么,我有一个用例)。下面的示例与我的情况类似。
def handle_in("topic", %{"param" => param}, socket) do
... do something here ...
send self(), %{:on_topic, result}
{:noreply, socket}
end
def handle_info({:on_topic, result}, socket) do
... do something here ...
push socket, "topic_resp", %{resp: result}
{:noreply, socket}
end
到目前为止,我可以轻松测试handle_in(因为没有回复),但是如何在handle_info之后等待和测试套接字推送的结果?