套接字python的单元测试
有人能帮忙做单元测试吗?我的程序的目标是连接到iKettle。这是我的代码:套接字python的单元测试,python,sockets,Python,Sockets,有人能帮忙做单元测试吗?我的程序的目标是连接到iKettle。这是我的代码: ip_address = "" port = 2000 def handShake(self, ip_address): s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) try: s.connect((ip_address, self.port)) s.send("HELLOKETTLE") se
ip_address = ""
port = 2000
def handShake(self, ip_address):
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
s.connect((ip_address, self.port))
s.send("HELLOKETTLE")
self.kettleResponse(s)
s.close()
except:
print("error connecting")
在我看来,您需要比使用套接字更高的抽象级别。类似于处理发送和接收响应的实体 然后,您可以对它进行专门化,创建套接字、发送数据、接收响应等,这些都是您在实际场景中使用的 然而,为了获得对单元测试有益的东西,您可以模拟这个实体,使其具有不做任何事情的伪方法,并返回您想要的结果 现在你显然认为,这不是在测试任何东西。你是对的。然而,我不认为您应该单元测试套接字通信,而是处理发送/接收的数据的方法和函数
另一种方法是在所需端口上创建localhost服务器,该端口将使用预先给定的数据进行响应。但这只不过是上述方法,但在创建服务器端、定义协议等方面的开销更大。,所有这些都是为了单元测试。您的问题是什么?我将如何在此基础上实现单元测试?我将如何对从套接字发送/接收数据的方法进行单元测试?您可以使用Python的单元测试和模拟库。请注意快速指南中的示例。在这里,您可以使用assert_调用_with etc,以确保调用方法。另外,你可以模拟那些方法返回的结果。你介意举个例子吗?表示:result=s.recv2048 printresult