簡體   English   中英

如何修補存儲在變量中的函數?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM