为了账号安全,请及时绑定邮箱和手机立即绑定

在定义它的文件中修补函数

在定义它的文件中修补函数

子衿沉夜 2021-11-23 19:19:31
我正在尝试学习单元测试补丁。我有一个文件,它都定义了一个函数,然后使用该函数。当我尝试修补这个函数时,它的返回值给了我真正的返回值,而不是修补后的返回值。如何修补在同一文件中定义和使用的函数?注意:我确实尝试遵循此处给出的建议,但它似乎并没有解决我的问题。walk_dir.py    从 os.path 导入目录名,加入    从 os 进口走    从 json 导入加载    def get_config():        current_path =dirname(__file__)        使用 open(join(current_path, 'config', 'json', 'folder.json')) 作为 json_file:            json_data = 加载(json_file)        返回 json_data['parent_dir']     def get_all_folders():        dir_to_walk = get_config()        对于 root, dir, _ in walk(dir_to_walk):            返回 [join(root, name) for name in dir]test_walk_dir.py    从 hello_world.walk_dir 导入 get_all_folders    从 unittest.mock 导入补丁    @patch('walk_dir.get_config')    def test_get_all_folders(mock_get_config):        mock_get_config.return_value = 'C:\\temp\\test\\'        结果 = get_all_folders()        assert set(result) == set('C:\\temp\\test\\test_walk_dir')
查看完整描述

1 回答

?
牧羊人nacy

TA贡献1862条经验 获得超7个赞

尝试以这种方式声明补丁:


@patch('hello_world.walk_dir.get_config')

正如您所看到的对您链接的问题的回答,建议您的import陈述与您的陈述相匹配patch。在你的情况下from hello_world.walk_dir import get_all_folders,@patch('walk_dir.get_config')不匹配。


查看完整回答
反对 回复 2021-11-23
  • 1 回答
  • 0 关注
  • 125 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信