如何进行 http.server do_GET模拟单元测试?



我是单元测试的初学者。我想知道如何对以下函数进行模拟单元测试。

import ...
class A(BaseHTTPRequestHandler):
def do_GET(self):
client_ip = self.client_address[0]
if client_id == '10.10.10.10':
self._set_headers_200()
return
else:
self._set_headers_400()
return

测试类:

import unittest
def test_A_get():
I want to test both 200 and 400 response

有人可以帮助我解决这个问题吗?

我正在做类似的任务。这是我到目前为止提出的部分解决方案

class TestA(unittest.TestCase):
def setUp(self):
self.mock_request = Mock()
@patch('http.server.HTTPServer')
@patch('my_module.A.do_GET')
def test_do_get(self, mock_do_get, mock_http_server):
"""Test if do_GET method gets called"""
mock_do_get.return_value = "/"
self.mock_request.makefile.return_value = IO(b"GET /")
server = A(self.mock_request, ('127.0.0.1', 8080), mock_http_server)
self.assertTrue(mock_do_get.called)
self.assertEqual(server.do_GET(), "/")

相关内容

  • 没有找到相关文章

最新更新