在 python 中更新模拟对象

我创建了一个模拟对象,如下所示:

    with patch('requests.get') as request:
      self.request = request
      self.request.session = MockSession()
      self.request.cookies = {}

如何通过其他功能更新


阿晨1998
浏览 100回答 1
1回答

MYYA

如果要保存已打补丁的对象,则必须手动启动和停止打补丁。如果您使用上下文管理器(例如with patch),补丁将在退出范围时恢复。您可以执行以下操作:class TestSomething(unittest.TestCase):    def setUp(self):      self.patcher = patch('requests.get')  # returns the patcher object      self.request = self.patcher.start()  # returns the patched object      self.request.session = MockSession()      self.request.cookies = {}    def tearDown(self):        sef.patcher.stop()    def test_03_set_nonce(self):        self.web_session.set_nonce(self.request)        self.assertTrue(len(self.request.cookies) > 0, 'set_nonce failed.')请注意,我没有检查实际测试——这取决于您的应用程序逻辑。您也可以直接在测试中进行修补:    @patch('requests.get')    def test_03_set_nonce(self, request):        request.session = MockSession()        request.cookies = {}        self.web_session.set_nonce(request)        self.assertTrue(len(request.cookies) > 0, 'set_nonce failed.')
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python