测试Ruby TCPSocket服务器
我有一个小应用程序,提供连接服务(比如聊天)。它捕获连接,从中获取登录信息,然后侦听数据并将其广播到每个连接(发送方除外) 问题是我不是一个非常先进的测试人员,不知道如何测试测试Ruby TCPSocket服务器,ruby,sockets,testing,tcpsocket,Ruby,Sockets,Testing,Tcpsocket,我有一个小应用程序,提供连接服务(比如聊天)。它捕获连接,从中获取登录信息,然后侦听数据并将其广播到每个连接(发送方除外) 问题是我不是一个非常先进的测试人员,不知道如何测试 # Handle each connection def serve(io) io.puts("LOGIN\n") # Listen for identifier user = io.gets.chomp ... # Add connection to the list @mutex.synch
# 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
如果您只想进行单元测试,您可以使用(或其他模拟框架)来存根您的方法,并确保逻辑按照您期望的方式工作。如果您真的想进行集成测试,那就需要做更多的工作,并且需要为套接字创建一个单独的读写器,这样您就可以独立地测试会话的每一部分,以获得预期的行为 显然有人在博客上写了一篇关于你的博客的文章。也许这个例子会对你有所帮助 如果您的问题更多地是关于您应该编写的测试用例,而不是关于如何测试套接字,那么您可能需要重写您的问题,以便答案更符合目标