gpt4 book ai didi

ruby - 测试 Ruby TCPSocket 服务器

转载 作者:数据小太阳 更新时间:2023-10-29 07:57:04 26 4
gpt4 key购买 nike

我有一个小型应用程序,用于连接(如聊天)。它捕获连接,从中获取登录名,然后监听数据并将其广播到每个连接,发送者除外。

问题是我不是一个非常高级的测试人员,也不知道如何测试。

# 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

最佳答案

如果你只想做单元测试,你可以使用RSpec mocks (或其他一些模拟框架) stub 您的方法并确保逻辑按您期望的方式工作。如果您真的想要进行集成测试,则需要做更多的工作,并且需要您为套接字创建一个单独的读取器和写入器,以便您可以实际独立测试对话的每个部分以实现预期行为。

其他人显然已经写了关于 similar issue 的博客给你的。也许该示例会对您有所帮助。

如果您的问题更多是关于您应该编写的测试用例,而不是关于如何测试套接字,那么您可能想要重写您的问题,以便答案更加切合实际。

关于ruby - 测试 Ruby TCPSocket 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10435292/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com