J'ai un gen_server qui exporte une fonction comme ceci:comment ce genre de erlang gen_server devrait être testé?
my_function(Param) ->
gen_server:cast(?SERVER, {forward, Param}).
et a un handle_cast comme celui-ci:
handle_cast({forward, Param}, #state{peer=Socket} = State) ->
gen_tcp:send(Socket, Param),
{noreply, State}.
Dans la plupart des cas, le poste qui est connecté à l'aide gen_tcp répondra avec l'un d'entre différents messages, et je gérer la réponse dans le handle_info
handle_info({tcp, Socket, Data}) ->
io:format("Received : ~p~n", [Data]),
{noreply, State}.
Est-il possible recommandé de tester ce genre de scénario dans Erlang?
je connais les appareils, mais le problème est que j'ai l'expérience uniquement avec gen_server: appel où le retour est en quelque sorte fixé. Comment puis-je relier les données envoyées en utilisant la fonction au résultat obtenu dans handle_info? – user601836
Si ma compréhension est correcte, vous voulez envoyer des messages de cette façon qu'ils seront traités par handle_info? – Alin
non, une fois que le message est envoyé dans le handle_cast en utilisant les sockets, je vais gérer la réponse dans le handle_info puisque la réponse viendra via socket – user601836