我是一個erlang的初學者,我編寫了一個基本的gen server程序,如下所示,我想知道如何測試服務器,以便我可以知道它的效果。如何在erlang中測試gen server?
-module(gen_server_test).
-behaviour(gen_server).
-export([start_link/0]).
-export([alloc/0, free/1]).
-export([init/1, handle_call/3, handle_cast/2]).
start_link() ->
gen_server:start_link({local, gen_server_test}, ch3, [], []).
alloc() ->
gen_server:call(gen_server_test, alloc).
free(Ch) ->
gen_server:cast(gen_server_test, {free, Ch}).
init(_Args) ->
{ok, channels()}.
handle_call(alloc, _From, Chs) ->
{Ch, Chs2} = alloc(Chs),
{reply, Ch, Chs2}.
handle_cast({free, Ch}, Chs) ->
io:format(Ch),
io:format(Chs),
Chs2 = free(),
{noreply, Chs2}.
free() ->
io:format("free").
channels() ->
io:format("channels").
alloc(chs) ->
io:format("alloc chs").
BTW:該程序可以被編譯,它是不是一個很好的計劃,我只是想打印的東西,以確保它的工作原理:)
您能澄清一下「測試服務器,我知道它運行良好嗎?」你試圖尋找什麼測試用例/問題的來源? – elliot42 2011-05-06 06:52:04