【发布时间】:2016-01-31 20:26:50
【问题描述】:
我有一个司机频道,可以将他们的位置广播到供应商频道。
defmodule MyApp.DriverChannel do
#...
def handle_in("transmit", payload, socket) do
MyApp.Endpoint.broadcast! "vendors:lobby", "track", payload
{:noreply, socket}
end
end
defmodule MyApp.DriverChannelTest do
#....
test "location broadcasts to vendors:lobby", %{socket: socket} do
push socket, "transmit", %{"hello" => "all"}
assert_broadcast "track", %{"hello" => "all"}
# Want something like this
# assert_broadcast "vendors:lobby", "track", %{"hello" => "all"}
end
end
这个断言会失败,因为它只检查来自DriverChannel的广播,如何断言对VendorChannel的广播,我查看了源代码,似乎没有传递channel_name的选项到assert_broadcast 宏。
[ 另一个说明] 我也有从控制器发出的广播,如果我知道这个问题的答案,我也可以断言这些广播! :)
【问题讨论】: