gpt4 book ai didi

ruby - 用 RSpec 模拟 TCPSocket

转载 作者:数据小太阳 更新时间:2023-10-29 08:50:11 27 4
gpt4 key购买 nike

我正在尝试围绕大量使用 TCPSockets(具体来说是 IRC 机器人)的应用程序编写测试。在编写我的第一个类的测试时,我一直在做:

#In the describe block
before(:all) { TCPServer.new 6667 }

...这允许我的 TCPSockets 运行(通过连接到 localhost:6667),尽管它们实际上并没有被正确模拟。但是,当我转到第二堂课时,这现在导致了问题,因为我无法在同一端口上创建 TCPServer。

我如何模拟 TCPSocket 类以允许我测试诸如 its(:socket) { should be_kind_of(TCPSocket) } 和其他常见操作(如 #readline 和#写?

最佳答案

您可以尝试在之前之后跟踪并关闭 TCPServer:

before do
@server = TCPServer.new 6667
end

after do
@server.close
end

it ... do
end

it ... do
end

在每个单独的测试之后,TCPServer 都会被终止,因此您可以创建一个具有相同端口的新服务器。

关于ruby - 用 RSpec 模拟 TCPSocket,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14555249/

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