接続を提供する小さなアプリケーションがあります(チャットなど)。接続をキャッチし、そこからログインを取得し、データをリッスンして、送信者を除く各接続にブロードキャストします。
問題は、私は非常に高度なテスターではなく、これをテストする方法がわからないことです。
# Handle each connection
def serve(io)
io.puts("LOGIN\n")
# Listen for identifier
user = io.gets.chomp
...
# Add connection to the list
@mutex.synchronize { @chatters[user] = io }
# Get and broadcast input until connection returns nil
loop do
incoming = io.gets
broadcast(incoming, io)
end
end
#Send message out to everyone, but sender
def broadcast(message="", sender)
# Mutex for safety - GServer uses threads
@mutex.synchronize do
@chatters.each do |chatter|
socket = chatter[1]
# Do not send to sender
if sock != sender
sock.print(message)
end
end
end
end