首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python单元在单套接字的tcp服务器上测试多个测试

Python单元在单套接字的tcp服务器上测试多个测试
EN

Stack Overflow用户
提问于 2018-01-06 05:36:13
回答 1查看 1.9K关注 0票数 2

我正在尝试测试一个使用TCP套接字的简单服务的实现。我希望在不为每个测试用例创建连接的情况下测试我的服务器。我想为整个测试套件建立一个单一的连接。目前我有一个类似这样的东西..

代码语言:javascript
复制
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()

保持单套接字连接打开并让多个测试用例使用该连接的好方法是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-06 05:40:58

如果您查看docs,您会发现它可以将setUptearDown方法放入只执行一次的测试类中。所以你可以这样做:

代码语言:javascript
复制
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')
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48121620

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档