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)