我是python中单元测试和模拟的新手,在下面的场景中,我知道如何模拟get_name()
没有任何参数的模拟示例,但我无法模拟下面age
作为参数的场景。你能帮我修复test_name
下面的模拟功能吗?
# data_source.py
def get_name(a):
return "Alice"+str(a)
def get_age():
return 30
Person 类公开了一个从数据源获取数据的方法:
# person.py
from data_source import get_name
class Person(object):
def name(self):
age = get_age()
return get_name(age)
from mock import patch
from person import Person
@patch('person.get_name')
def test_name(mock_get_name):
mock_get_name.return_value = "Bob"
person = Person()
name = person.name()
assert name == "Bob"
提前致谢!