我正在尝试使用Mock
测试从检索设置的函数返回的结果:
def apply_delta_to_date(original_date):
delta = MySettings.get_delta()
result_date = original_date + timedelta(delta)
return result_date
在测试apply_delta_to_date
函数时,我试图模拟对MySettings.get_delta
的调用,以模拟其返回特定结果:
class TestAppyDelta():
def setUp(self):
self.MySettings = Mock()
self.MySettings.get_delta = Mock(return_value=10)
def test_apply_delta(self):
result = apply_delta_to_date(today)
问题是,我无法“模拟”对MySettings.get_delta()
的函数调用,这是我真正想要测试的函数的内部。你知道吗
如何模拟正在测试的函数中的内部函数返回的结果?你知道吗
你需要的是补丁.object上下文管理器,它完全满足您的需要:它接受一个类和方法,并允许您定义一个自定义返回值。你知道吗
有关更多详细信息,请参阅文档https://docs.python.org/3/library/unittest.mock.html#quick-guide
你一点也没有嘲笑正确的事情。您所做的就是在测试类中定义MySettings属性。从来没有人叫它。你知道吗
您需要在调用MySettings的地方模拟对MySettings的引用。假设您正在从名为
my_delta_module
的模块导入apply_delta_to_date
:相关问题 更多 >
编程相关推荐