Python 使用unittest库请求\u模拟夹具?
我需要模拟Python 使用unittest库请求\u模拟夹具?,python,unit-testing,python-requests,mocking,fixtures,Python,Unit Testing,Python Requests,Mocking,Fixtures,我需要模拟requestslibrary,所以我想使用requests\u mocklibrary来实现这一点。尽管我想知道在使用unittest库时如何为我的测试类创建一个fixture 我可以使用testtools来实现这一点,比如: import testtools from requests_mock.contrib import fixture class MyTestCase(testtools.TestCase): TEST_URL = 'http://some-not-
requests
library,所以我想使用requests\u mock
library来实现这一点。尽管我想知道在使用unittest
库时如何为我的测试类创建一个fixture
我可以使用testtools
来实现这一点,比如:
import testtools
from requests_mock.contrib import fixture
class MyTestCase(testtools.TestCase):
TEST_URL = 'http://some-not-existing-url.com'
def setUp(self):
super().setUp()
self.requests_mock = self.useFixture(fixture.Fixture())
self.requests_mock.post(self.TEST_URL, status_code='200')
def test_01_method(self):
resp = requests.post(self.TEST_URL)
self.assertEqual('200', resp.status_code)
现在,unittest
没有useFixture
方法。unittest
lib中是否有一些等价物?或者我需要使用一些不同的方法
尝试类似的事情(没有useFixture
,崩溃测试):
使用unittest
运行时,我得到了[Errno-2]名称或服务未知
,这清楚地表明模拟没有正确应用
另外,我需要
unittest
lib,因为它是在我使用的框架中使用的。因此,我需要合并这些单元测试以与该框架保持一致。您可以在设置中显式启动模拟,并在拆卸中停止模拟
例如:
导入单元测试
导入请求\u mock
导入请求
类MyTestCase(unittest.TestCase):
测试http://some-not-existing-url.com'
def设置(自):
super().setUp()
self.requests\u mock=requests\u mock.Mocker()
self.requests\u mock.post(self.TEST\u URL,状态\u code='200')
self.requests_mock.start()
def测试方法(自身):
resp=requests.post(self.TEST\u URL)
自身资产质量('200',各自的状态代码)
def拆卸(自):
super().tearDown()
self.requests_mock.stop()
您可以在设置
中显式启动模拟,而不是使用夹具,然后在拆卸
中停止模拟
例如:
导入单元测试
导入请求\u mock
导入请求
类MyTestCase(unittest.TestCase):
测试http://some-not-existing-url.com'
def设置(自):
super().setUp()
self.requests\u mock=requests\u mock.Mocker()
self.requests\u mock.post(self.TEST\u URL,状态\u code='200')
self.requests_mock.start()
def测试方法(自身):
resp=requests.post(self.TEST\u URL)
自身资产质量('200',各自的状态代码)
def拆卸(自):
super().tearDown()
self.requests_mock.stop()
import unittest
from requests_mock.contrib import fixture
class MyTestCase(unittest.TestCase):
TEST_URL = 'http://some-not-existing-url.com'
def setUp(self):
super().setUp()
self.requests_mock = fixture.Fixture()
self.requests_mock.post(self.TEST_URL, status_code='200')
def test_01_method(self):
resp = requests.post(self.TEST_URL)
self.assertEqual('200', resp.status_code)