我正在尝试测试一个使用TCP套接字的简单服务的实现。我希望在不为每个测试用例创建连接的情况下测试我的服务器。我想为整个测试套件建立一个单一的连接。目前我有一个类似这样的东西..
class Test_service(unittest.TestCase):
def test_1(self):
client_socket = socket(AF_INET, SOCK_STREAM)
client_socket.connect(('', port_number))
client_socket.send('message1'.encode())
self.assertEqual(client_socket.recv(1024).decode(), 'reply1')
client_socket.close()
def test_2(self):
client_socket = socket(AF_INET, SOCK_STREAM)
client_socket.connect(('', port_number))
client_socket.send('message2'.encode())
self.assertEqual(client_socket.recv(1024).decode(), 'reply2')
client_socket.close()
if __name__ == '__main__':
unittest.main()保持单套接字连接打开并让多个测试用例使用该连接的好方法是什么?
发布于 2018-01-06 05:40:58
如果您查看docs,您会发现它可以将setUp和tearDown方法放入只执行一次的测试类中。所以你可以这样做:
class Test_service(unittest.TestCase):
def setUp(self):
client_socket = socket(AF_INET, SOCK_STREAM)
client_socket.connect(('', port_number))
def tearDown(self):
client_socket.close()
def test_1(self):
client_socket.send('message1'.encode())
self.assertEqual(client_socket.recv(1024).decode(), 'reply1')
def test_2(self):
client_socket.send('message2'.encode())
self.assertEqual(client_socket.recv(1024).decode(), 'reply2')https://stackoverflow.com/questions/48121620
复制相似问题