2016-10-09 8 views
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 
+0

私は100%あなたが達成したいと思う理由は何ですか?同時に、返信するpid(親であろうとなかろうと)を送信することは、私に合法的な音である。 – cdegroot

答えて

1

親プロセスに返信する場合は、012を使用する必要があります:

def handle_call(data, from, state) do 
    case updated do 
     false -> Process.send_after(from, {:update_retry, ... parent, retries + 1}, 500) 
     true -> ... 
     state 
    end 
    {:reply, :ok, state} 
end 
+0

私は、test envの親に返信(通知)する必要があります。 –

関連する問題