<p>如果您还想模拟<code>CustomThrottle</code>类及其属性,那么您还需要在需要它的地方<code>patch</code>,因为<code>patch</code>decorator在调用它的地方应用<code>monkey patching</code></p>
<p>关于你的情况,你可以做如下事情</p>
<pre><code>from unittest.mock import MagicMock, patch
@patch('api.views.CustomThrottle')
@patch('api.views.PhoneConfirmationThrottle')
def test_learn(self, phone_throttle, custom_throttle):
mocked_custom_throttle_instance = MagicMock()
mocked_custom_throttle_instance.allow_request = True
mocked_custom_throttle_instance.status = ...
# Do some stuff which do you need with the mocked class
# and then return an instance for your patched object
custom_throttle.return_value = mocked_custom_throttle_instance
response = self.client.post(path, data=data)
self.assertEqual(
response.status_code,
status.HTTP_200_OK,
"Should be successful",
)
</code></pre>
<p>它将用<code>mocked</code>对象替换您的<code>real</code>对象,也可以签出<a href="https://docs.python.org/3/library/unittest.mock.html" rel="nofollow noreferrer">unittest.mock documentation</a>,它将在将来帮助您</p>