0
parent_pid
の引数をプロダクションのほとんどのhandlecastおよびhandleinfo関数に持たせることは悪い習慣と考えられますか?エリクサーテストgenserver - 親PIDを渡す
私はこのようにテストしてい:
parent = self()
GenServer.cast(UserServer.via_tuple(user.id), {:update_direct, parent})
assert_receive :updating_failed, 2000
そして、(単純リトライモック付き)genserver:handle_info :update_retry
で
def handle_cast(..... parent) do
case updated do
false -> Process.send_after(self(), {:update_retry, ... parent, retries + 1}, 500)
true -> ...
state
end
end
そして最後に、私はテスト(親)を待っているに戻ってメッセージを送信します。
send parent, :updating_failed
私は100%あなたが達成したいと思う理由は何ですか?同時に、返信するpid(親であろうとなかろうと)を送信することは、私に合法的な音である。 – cdegroot