我有一个类,其方法实例化了第二个类的元素:
class FirstClass:
def method_one():
second_class = SecondClass()
第二个类有一个带有默认参数的方法:
class SecondClass:
def method_two(important_date: datetime.date = get_today())
以及不同文件date_service
中的函数get_today
:
def get_today() -> datetime.date:
return datetime.date.today()
我正在一个test_first_class.py
中测试method_one
,我没有设法模拟get_today()
的值
我在SO中查看了几页和解决方案,但无法修复。其中一些想法:
with patch.object(build_url, 'func_defaults', ('domain',)):
我不知道我要说什么。我尝试了类似于SecondClass.method_two
的东西,但它不起作用
备注:我知道一个好的单元测试应该独立地测试FirstClass
和SecondClass
,并在test_first_class.py
中模拟method_two
,但由于某些原因,我不能这样做:-(
我最终通过以下操作解决了问题:
其中
second_class
和first_class
分别包含SecondClass
和FirstClass
;今天是我用来模拟的日子注意:您需要重新加载这两个类,并且按照这个顺序重新加载,否则它将无法工作
备注:根据@Klaus D.comment,我最终无法使用
get_today()
作为默认可选参数,我也不必使用所有这些乱七八糟的参数,但如果有人需要,我会给出答案相关问题 更多 >
编程相关推荐