我试图在localhost上模拟一个http服务器,以便更快地进行测试。
例如:
import my_module
class RequestsTestCase(unittest.TestCase):
def setUp(self):
# ...
html = 'hello, world'
my_server = MyServer(html, 8888)
my_server.run()
...
def test_my_module_request_phrase(self):
response = my_module.get_phrase('http://localhost:8888/')
self.assertEqual(response, 'hello, world')
使用python 3可以实现这样吗?
答案 0 :(得分:2)
我只想测试请求的响应,而不需要互联网(...)
没问题。您可以在运行测试的同一主机上运行测试http服务器。如果你在同一个进程中运行它,你的测试正在运行(在使用unittest并从setUp()
方法中运行测试服务器的情况就是如此),那么服务器必须在一个单独的线程中运行,这样它就不会阻止你的测试。您可以在urllib3 here中了解它是如何完成的。
答案 1 :(得分:1)