栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

python单元测试中的模拟常量不起作用

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python单元测试中的模拟常量不起作用

如果要修补对象,则必须始终修补模块中使用的对象,例如,如果您以以下形式导入对象:

from x importy
在模块中
module
,必须修补
module.y
而不是
x.y
。这是在描述文档,并且有一个很好的博客文章由斯内德尔德在详细描述问题。在您的情况下,您需要:

@patch("path.to.using_module.REL_PATH", "another/custom/path/file.csv")def test_create_anomalies_repository_csv(self):     create_csv(missing_path_here="test")

只要

path.to.using_module.py
输入这样的常量:

from path.for.setting import REL_PATH

您尝试过的另一个变体是等效的,也可以使用:

def test_create_anomalies_repository_csv(self):    with path("path.to.using_module.REL_PATH", "another/custom/path/file.csv")        create_csv(missing_path_here="test")

总而言之,您始终必须检查如何导入要使用的对象。基本上有两种情况:

  • 该对象是在进口
    sut.py
    import module
    import module.object
    在这种情况下,它可以被修补为-
    module.object
  • 该对象的导入方式
    sut.py
    类似
    from module import object
    -在这种情况下,
    sut.py
    使用本地引用来引用该对象,并且应为
    sut.object


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/647375.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号