【问题标题】:How to apply two different mock.patches to one unit test?如何将两个不同的 mock.patches 应用于一个单元测试?
【发布时间】:2018-02-13 14:10:31
【问题描述】:

当我尝试运行此测试时:

from unittest import mock

@mock.patch('requests.get', side_effect=mocked_requests_get)
@mock.patch('requests.post', side_effect=mocked_requests_post)
def test_zeros(self, response):
    self.assertEqual(0, 0) 

上面写着TypeError: test_zeros() takes 2 positional arguments but 3 were given。那么,如何在一个测试中模拟两种不同的方法(我需要 requests.getrequests.post)?

【问题讨论】:

    标签: django unit-testing mocking


    【解决方案1】:

    装饰器中定义的模拟被传递给装饰函数。我不知道 response 应该是什么,但您需要接受 get 和 post 对象的参数。

    @mock.patch('requests.get', side_effect=mocked_requests_get)
    @mock.patch('requests.post', side_effect=mocked_requests_post)
    def test_zeros(self, post_mock, get_mock):
        self.assertEqual(0, 0) 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-25
      • 2011-07-25
      • 1970-01-01
      • 1970-01-01
      • 2011-06-18
      • 2013-11-13
      相关资源
      最近更新 更多