[英]python unittest: How to mock an object's construct to return a mock?
我有一個.py
class foo:
def __init__(self, name):
self.name=name
def get_name(self):
return self.name
和一個來電者 b.py
form a import foo
def get_foo():
myfoo = foo("Alex")
name = myfoo.get_name()
return name
現在我想為 get_foo() 方法編寫單元,如何模擬 foo.get_name() 以返回我想要的值? 我的痛點是我無法向myfoo=foo("Alex")
注入模擬
你可以用unittest.mock.patch
模擬你的foo
,你只需要知道在哪里打補丁。
import unittest
from unittest.mock import patch
from b import get_foo
class TestB(unittest.TestCase):
@patch("b.foo") # patch `foo` in `b` namespace since you do `from ... import`
def test_get_foo(self, mock_foo):
expected = "Bob"
mock_foo.return_value.get_name.return_value = expected
actual = get_foo()
self.assertEqual(actual, expected)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.