[英]How can I patch a function stored in a variable?
如何進行以下測試?
mymodule.py
import requests
http_methods = {
"GET": requests.get,
"POST": requests.post,
"PUT": requests.put,
"DELETE": requests.delete
}
def foo(method):
r = http_methods[method]("http://some.thing")
return r.status_code
tests.py
import unittest
from mock import patch
import mymodule
class MyTestCase(unittest.TestCase):
...
@patch("requests.post")
def test_foo(self, post):
post.return_value = 200
self.assertEquals(mymodule.foo("POST"), 200)
當我執行測試時,我收到一個ConnectionError
異常,因為foo
正在執行實際的requests.post
。
試試@patch("mymodule.requests.post")
,看看在哪里打補丁
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.